JavaScriptでゼロパディング
sliceを利用したゼロパディング
ワンライナーで書ける有名な方法です。 ただ、後ろからn文字を取得しているだけなので出力される桁数が固定されてしまい、入力された数の桁が指定より大きくなると期待する値が取得できません。
//3桁の数をゼロパディング var number = 123; console.log(("00000"+number).slice(-5)); //00123 //大きい桁の数が入力されると指定された桁数しか取得できない var number = 123456; console.log(("00000"+number).slice(-5)); //23456
Internationalization APIを利用したゼロパディング
Internationalization API を使用したゼロパディングです。 こちらは桁数が増えても大丈夫ですが、21桁までしか出力できません。 ブラウザの対応具合も問題で、IEは11から対応。Safari、Androidは現時点(2015/1/15)では対応していないようです。 安心して使えるようになるにはまだ少し時間がかかりそうです。
var number = 123, locale = "ja-JP", options = { //出力する桁数を指定 minimumIntegerDigits : 5, //falseを指定しないとja-JPでは3桁毎のカンマ区切りで出力される useGrouping : false }, padLeftZero = Intl.NumberFormat(locale, options).format; console.log(padLeftZero(number)); //00032 console.log(number.toLocaleString(locale, options)); //00032 //大きい桁を入力したらそのまま出力される var number = 123456; console.log(padLeftZero(number)); //1243456