htsign's blog

ノンジャンルで書くつもりだけど技術系が多いんじゃないかと思います

スニペット的な

備忘録として。
頭に0を付けて指定の文字数にするっての、結構手間取ったのでいろんな情報を元に自分なりのメソッド作ってみた。
これ見て助かる人がいれば幸い。

// p 桁のゼロパディングを行うメソッドを追加
Number.prototype.zPad = function(p) {
  // 与えられた p のバリデーションチェック
  var len = String(this).length;
  p = p && p>=len ? p<<0 : len;
  // p-1個の連続した "0" を代入する
  var zero = (function() {
    var s = "";
    for (var i=0; i<p-1; i++) {
      s += "0";
    }
    return s;
  })();
  return (zero+this).slice(-1*p);
};

たぶん有名なライブラリは初めから持ってるんだろうなぁ…とか。


最終的にこうなりました。

 Number.prototype.zPad = function(p) {
  var len = String(this).length;
  p = p && p>=len ? p<<0 : len;
  return (Array(p).join("0")+this).slice(-1*p);
};