javascriptで数字の0埋め(padding)をする
数字の「12」を「012」のように0埋めたい時
var num=12; result = ("000"+num).slice(-3);// "000"+"12" -> "00"+"012" -> "012"
のように一旦埋めたい文字列を先頭に連結して後ろから必要な分、部分文字列を切り出すと実現できます。
substrも使えますが負の数の挙動が異なることもある(JScript)ので、lengthから必要な文字列分引いてから指定するか、sliceをつかったほうがしたほうが無難そうです。
var num=12; result = ("000"+num).substr(-3);
汎用的にはこんな感じかと
var padding = function(num, padBy){ if(num<0){ return num;// Negative number is not support. } num = Math.floor(num); padBy = padBy||"00";// default value var numString = ""+num;// cast number type as string if(numString.length>padBy.length){// padding不要なほどnumが長い時は何もしない return numString; } var res = ""; var sliceLength = -padBy.length; console.log("sliceLength : "+sliceLength); var res = (padBy+num).slice(sliceLength); console.log("res : "+res); return res; }; var num = Math.round( Math.random()*150 ); var result = padding(num,"000"); alert(result);