記事
(修正版)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);
}



