プロフィール

ポストイット オンラインプリント i-Note
MoMAstore


記事

JavaScriptのビルトインオブジェクトの拡張:ゼロパディング

プログラミング

公開日:2009/02/15 15:04

この記事のソースは負の値や小数に未対応です。
近頃JavaScriptであれこれやっているのですが、副産物としてできたゼロパディングのメソッドを簡単にまとめてみました。
※ゼロパディングとは、「数値を固定長にするために0で桁埋めすること」を意味します。
年月日や時刻を固定長で表示したい
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行ですっきりするというのがメリット。
上の例だと、
str1に"00000015"が代入される
str2に"000f"が代入される
という結果になります。

クリップ