プロフィール

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


記事

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

プログラミング

公開日:2009/09/16 20:01

以前書いたソースにかなりトホホな落とし穴があったので、修正します。
RGB値や日付を想定して作っていたので、負の値に対して未対応でした。ですので、以下に負の値対応版のソースを貼っておきます。 とはいえ、依然として小数には未対応なのでご注意ください。
Math.absで絶対値にしておいて、負の値だったときに変数 sign に「−」の 文字列を代入して、それを res にくっつけて返すという流れです。全体として冗長なので、その辺はご自由に改造してください。
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 = Math.abs(this).toString(10);
    var res = '';
    var sign = '';

    if(this<0) {
        sign = '-';
    }

    if(column>str.length) {
        res  = this.repeatZero(column-str.length);
        res += str;
    } else {
        res = str;
    }
    return(sign+res);
}
Number.prototype.zeroPaddingHex = function(column) {
    var str = Math.abs(this).toString(16);
    var res = '';
    var sign = '';

    if(this<0) {
        sign = '-';
    }

    if(column>str.length) {
        res  = this.repeatZero(column-str.length);
        res += str;
    } else {
        res = str;
    }
    return(sign+res);
}
修正前の記事:JavaScriptのビルトインオブジェクトの拡張:ゼロパディング

クリップ