function pad(num, n) { var len = num.toString().length; while(len < n) { num = "0" + num; len++; } return num; }
var str="56"; for (var i=0;i<4;i++){ if(str.length<4){ str=(4-str.length)*0+str; } } alert(str);
});
<script language="javascript" type="text/javascript"> function fun(str, count, charStr) { var disstr = ""; if (str.length == count) { return ""; } for (var i = 1; i <= (count - str.length); i++) { disstr += charStr; } return disstr+str; } function Button1_onclick() { var i = 1; var s = fun(i.toString(), 4, '0'); alert(s); } </script>
alert(("0000" + 1).slice(-4));
其实(4-str.length)* 这一句是没有必要的吧,直接写成str=0+str;不就好了。
四楼正解,但可少个0 var i=1;//0到9999 超过就不是四位数啦 alert(("000"+i).slice(-4));
function pad(num, n) {
var len = num.toString().length;
while(len < n) {
num = "0" + num;
len++;
}
return num;
}
for (var i=0;i<4;i++){
if(str.length<4){
str=(4-str.length)*0+str;
}
}
alert(str);
});
function fun(str, count, charStr) {
var disstr = "";
if (str.length == count) {
return "";
}
for (var i = 1; i <= (count - str.length); i++) {
disstr += charStr;
}
return disstr+str;
}
function Button1_onclick() {
var i = 1;
var s = fun(i.toString(), 4, '0');
alert(s);
}
</script>
alert(("0000" + 1).slice(-4));
var i=1;//0到9999 超过就不是四位数啦
alert(("000"+i).slice(-4));
下面这个地址有测试数据作凭证
http://blog.sina.com.cn/s/blog_7323532a0100op2s.html
一样吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function pad0(num, n) {
var len = num.toString().length;
while(len < n) {
num = "0" + num;
len++;
}
return num;
}function pad1(num, n) {
var i = (num + "").length;
while(i++ < n) num = "0" + num;
return num;
}function pad2(num, n) {
if ((num + "").length >= n) return num;
return pad2("0" + num, n);
}function pad3(num, n) {
return (Array(n).join(0) + num).slice(-n);
}function pad4(num, n) {
return ("0000"+num).slice(-n);
}var testNum = 12, testNum2 = 123456789, testPad = 7;
println(pad0(testNum, testPad));
println(pad0(testNum2, testPad));
println(pad1(testNum, testPad));
println(pad1(testNum2, testPad));
println(pad2(testNum, testPad));
println(pad2(testNum2, testPad));
println(pad3(testNum, testPad));
println(pad3(testNum2, testPad));
println(pad4(testNum, testPad));
println(pad4(testNum2, testPad));
var N = 50000, start;
for (var i = 0, c; c = ["pad0","pad1", "pad2", "pad3","pad4"][i++]; ) {
start = +new Date;
for (var j = 0; j < N; ++j) {
window[c](12, 3);
}
println(c + " time: " + (+new Date - start));
}
function println(msg) {
document.write(msg + "<br />");
}
</script>
</head>
<body></body>
</html>测试结果:
pad0:0000012
pad0:123456789
pad1:0000012
pad1:123456789
pad2:0000012
pad2:123456789
pad3:0000012
pad3:3456789
pad4:000012
pad4:3456789pad0 time: 1297
pad1 time: 1187
pad2 time: 1313
pad3 time: 1734
pad4 time: 1203
pad4就是("000"+i).slice(-4)的结果,有没有bug实事说话
function pad4(num, n) {
return ("0000000"+num).slice(-n);
}测试结果:
pad0:0000012
pad0:123456789
pad1:0000012
pad1:123456789
pad2:0000012
pad2:123456789
pad3:0000012
pad3:3456789
pad4:0000012
pad4:3456789
pad0 time: 1250
pad1 time: 1188
pad2 time: 1312
pad3 time: 1719
pad4 time: 1219由此得出
return (Array(n).join(0) + num).slice(-n);与("000"+i).slice(-4);它们的bug是一样的.
<script>
for (var i=0;i<10000;i++){
document.write (("000"+i).slice(-4)+"<br>");
}
</script>
function handle( num ){
var str="0000", len = num.toString().length;
return str.slice( -( 4 - len ) ) + num;
}把要处理的数 传进去,该函数就返回你想要的四位数
function addZero(n,c){
return (c-n.toString().length)?addZero('0'+n,c):n;
}
参数1:输入的数字,参数2:位数;调用比如
addZero(123,5);
得到00123;