如题:把1输出为0001····如果是 10··就输出0010···输出4位数····js代码···

解决方案 »

  1.   


    function pad(num, n) { 
    var len = num.toString().length; 
    while(len < n) { 
    num = "0" + num; 
    len++; 

    return num; 

      

  2.   

     var  str="56";
       for (var i=0;i<4;i++){
           if(str.length<4){
           str=(4-str.length)*0+str;
          }
      }
     alert(str);

    });
      

  3.   

     <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>
      

  4.   


    alert(("0000" + 1).slice(-4));
      

  5.   

    其实(4-str.length)*  这一句是没有必要的吧,直接写成str=0+str;不就好了。
      

  6.   

    四楼正解,但可少个0
    var i=1;//0到9999 超过就不是四位数啦
    alert(("000"+i).slice(-4));
      

  7.   

    这种方式有BUG,代码不是越少越好,而且这种方式效率最低,
    下面这个地址有测试数据作凭证
    http://blog.sina.com.cn/s/blog_7323532a0100op2s.html
      

  8.   

    有没有bug用实事说话。return (Array(n).join(0) + num).slice(-n);与("000"+i).slice(-4);
    一样吗?
      

  9.   

    好吧,写法是有点不一样,但bug还是一样的,以下是我的测试代码与结果
    <!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实事说话
      

  10.   

    上面那个pad4的function更正下,因为测试的是7位,所以再多补几个0
    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是一样的.
      

  11.   

    //用事实说话:固定4位数
    <script>
    for (var i=0;i<10000;i++){
      document.write (("000"+i).slice(-4)+"<br>");
    }
    </script>
      

  12.   


    function handle( num ){
      var str="0000", len = num.toString().length;
       return str.slice( -( 4 - len ) ) + num;
    }把要处理的数 传进去,该函数就返回你想要的四位数
      

  13.   


    function addZero(n,c){
        return (c-n.toString().length)?addZero('0'+n,c):n;
    }
      

  14.   

    看我写的怎样?
    参数1:输入的数字,参数2:位数;调用比如
    addZero(123,5);
    得到00123;