【问题标题】:Padding zero to the left of number in Javascript [duplicate]在Javascript中将零填充到数字的左侧[重复]
【发布时间】:2014-08-08 08:21:30
【问题描述】:

我有一个永远不变的十位数字。我想填充它,这样它总是会为每个添加到数字的额外数字删除一个零。有人可以给我举个例子吗?

例如。 0000000001

0000000123 
0000011299

【问题讨论】:

标签: javascript


【解决方案1】:

你可以使用这个功能:

function pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

输出

pad("123", 10);    // => "0000000123"

JSFIDDLE DEMO

【讨论】:

  • 简单地使用原生填充 "123".padStart(10, '0'); // => "0000000123"
【解决方案2】:

试试看:

function zeroPad(input, length) {
    return (Array(length + 1).join('0') + input).slice(-length);
}

var output = zeroPad(123, 10);

输出:

"0000000123"

【讨论】:

    【解决方案3】:

    另一种变体是:

    function pad(input, length) {
        return Array(length - Math.floor(Math.log10(input))).join('0') + input;
    }
    
    var out = pad(23, 4); // is "0023"
    

    【讨论】: