記事
JavaScriptのビルトインオブジェクトの拡張:ゼロパディング
プログラミング
公開日:2009/02/15 15:04
この記事のソースは負の値や小数に未対応です。
負の値対応の修正版:(修正版)JavaScriptのビルトインオブジェクトの拡張:ゼロパディング
近頃JavaScriptであれこれやっているのですが、副産物としてできたゼロパディングのメソッドを簡単にまとめてみました。
※ゼロパディングとは、「数値を固定長にするために0で桁埋めすること」を意味します。
※ゼロパディングとは、「数値を固定長にするために0で桁埋めすること」を意味します。
年月日や時刻を固定長で表示したい
RGBの値を数値で保持していて#RRGGBBの形式にしたい
RGBの値を数値で保持していて#RRGGBBの形式にしたい
のようなときによく使うので、使うときの利便性を考え、ビルトインオブジェクトに追加したのが以下のソースです。
十進と十六進でそれぞれメソッドを用意してあります。
十進と十六進でそれぞれメソッドを用意してあります。
Number.prototype.repeatZero = function(count) {
var res = '';
for(var i=0; i<count; i++) {
res += '0';
}
return( res );
}
Number.prototype.zeroPadding = function(column) {
var str = this.toString(10);
var res = '';
if(column>str.length) {
res = this.repeatZero(column-str.length);
res += str;
} else {
res = str;
}
return(res);
}
Number.prototype.zeroPaddingHex = function(column) {
var str = this.toString(16);
var res = '';
if(column>str.length) {
res = this.repeatZero(column-str.length);
res += str;
} else {
res = str;
}
return(res);
}
メソッドの使い方
メソッドは repeatZero(), zeroPadding(), zeroPaddingHex() の3つですが、直接使うのはzeroPadding()とzeroPaddingHex()の2つだけです。使い方は単純で、メソッドの引き数に必要な桁数を指定します。
これを使うと、
上の例だと、
var num = 15;
var str1 = num.zeroPadding(8);
var str2 = num.zeroPaddingHex(4);
のように、任意の桁のゼロパディングが1行ですっきりするというのがメリット。var str1 = num.zeroPadding(8);
var str2 = num.zeroPaddingHex(4);
上の例だと、
str1に"00000015"が代入される
str2に"000f"が代入される
という結果になります。 str2に"000f"が代入される



