
文字列を入れるカスタムフィルター
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;
}
};
});
