例如 %02d 1 输出 01,%03d 1输出001.

解决方案 »

  1.   

    function pad(num, n) {
       y='00000000000000000000000000000'+num; //爱几个0就几个,自己够用就行
       return y.substr(y.length-n);
    }
    alert(pad(3,6)); //000003
      

  2.   

    只支持 d 整形 printf  function printf(){
      var as=[].slice.call(arguments),fmt=as.shift(),i=0;
      return  fmt.replace(/%(\w)?(\d)?([dfsx])/ig,function(_,a,b,c){
       var s=b?new Array(b-0+1).join(a||''):'';
       if(c=='d') s+=parseInt(as[i++]);
       return b?s.slice(b*-1):s;
      })
    }
    alert(  printf('%d',10)  )
    alert(  printf('(%03d)',1)  )
    alert(  printf('<%02d>',1)  )