文字列を入れるカスタムフィルター
123のような数字に対して左側に0または*などをたして5けたに満たしたいことがある。例)00123 **123
このような場合、AngularJSのカスタムフィルターを作成しておくと使い回しができて便利なので作成してみた。
使い方
{{123 | lpad:5:0}}のようにlpad:(桁数):(満たしたい文字)を入力するだけで00123のように表示してくれる。
ちなみにlpadという名前はSQL関数のLPADから拝借
http://www.shift-the-oracle.com/sql/functions/lpad.html
コード
angular.module('myApp', []) .filter('lpad', function () { return function (str, len, pad) { str = String(str); if((len > str.length) && !isNaN(len)) { var zero = '', i = 0; while(i < len) { zero += pad; i++; } return (zero + str).slice(-len); } else { return str; } }; });