为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中将'1'转换为'0001'

在JavaScript中将'1'转换为'0001'

暮色呼如 2019-08-12 15:36:09
在JavaScript中将'1'转换为'0001'如何在JavaScript中将转换'1'转换为'0001'而不使用任何第三方库。我使用spritf在php中完成了这个:$time = sprintf('%04.0f',$time_arr[$i]);
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这是一个聪明的小技巧(我认为我以前见过这个):

var str = "" + 1var pad = "0000"var ans = pad.substring(0, pad.length - str.length) + str

如果substring的第二个参数是负数,那么JavaScript比某些语言更宽容,因此它会“正确地溢出”(或者根据它的查看方式不正确):

也就是说,有了以上内容:

  • 1 - >“0001”

  • 12345 - >“12345”

支持负数留作练习;-)

快乐的编码。


查看完整回答
反对 回复 2019-08-12
?
四季花海

TA贡献1811条经验 获得超5个赞

只是为了演示javascript的灵活性:你可以使用oneliner


function padLeft(nr, n, str){

    return Array(n-String(nr).length+1).join(str||'0')+nr;

}

//or as a Number prototype method:

Number.prototype.padLeft = function (n,str){

    return Array(n-String(this).length+1).join(str||'0')+this;

}

//examples

console.log(padLeft(23,5));       //=> '00023'

console.log((23).padLeft(5));     //=> '00023'

console.log((23).padLeft(5,' ')); //=> '   23'

console.log(padLeft(23,5,'>>'));  //=> '>>>>>>23'

如果你想将它用于负数:


Number.prototype.padLeft = function (n,str) {

    return (this < 0 ? '-' : '') + 

            Array(n-String(Math.abs(this)).length+1)

             .join(str||'0') + 

           (Math.abs(this));

}

console.log((-23).padLeft(5));     //=> '-00023'

如果您不想使用,请选择Array:


number.prototype.padLeft = function (len,chr) {

 var self = Math.abs(this)+'';

 return (this<0 && '-' || '')+

         (String(Math.pow( 10, (len || 2)-self.length))

           .slice(1).replace(/0/g,chr||'0') + self);

}


查看完整回答
反对 回复 2019-08-12
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

String.prototype.padZero= function(len, c){
    var s= this, c= c || '0';
    while(s.length< len) s= c+ s;
    return s;}

显示名称,你可以左键填充任何字符,包括空格。我从来没有使用右侧填充,但这很容易。


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 2438 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号