如何通过保持左侧'0'来保持n位数?

时间:2017-04-27 12:54:09

标签: javascript string numbers

我做了一个for循环,希望能很好地对齐它。

for(var i=7;i<14; i++){ console.log( i ) }

我得到了

7
8
9
10
11
12
13

我想要

07
08
09
10
11
12
13

是否有内置方法可以做到这一点? 没有级联测试i.length=1?'0'+i:i;

现在我使用.toPrecision(2)

5.00
6.00
7.00
8.00
9.00
10.0
11.0
12.0
13.0
14.0

但它不是最理想的,因为迭代是整数,不能有“.xx”。

5 个答案:

答案 0 :(得分:5)

您可以使用Number#toLocaleString使用正确的选项。

var i;
for (i = 7; i < 14; i++) {
    console.log(i.toLocaleString(undefined, { minimumIntegerDigits: 2 }))
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:3)

连接"00"和您的号码,并使用带有负数的String.slice

for (var i = 7; i < 14; i++) {
  console.log(("00" + i).slice(-2));
}

将来的某个时候,您可以使用String.padStart进行此类操作:

for (var i = 7; i < 14; i++) {
  console.log(i.toString().padStart(2, "0"));
}

答案 2 :(得分:2)

您可以使用String.prototype.padStart(),如果它不是原生的,您可以添加其填充,请参阅以下内容:

&#13;
&#13;
if (!String.prototype.padStart) {
    String.prototype.padStart = function padStart(targetLength,padString) {
        targetLength = targetLength>>0; //floor if number or convert non-number to 0;
        padString = String(padString || ' ');
        if (this.length > targetLength) {
            return String(this);
        }
        else {
            targetLength = targetLength-this.length;
            if (targetLength > padString.length) {
                padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
            }
            return padString.slice(0,targetLength) + String(this);
        }
    };
}

for (var i = 7; i < 14; i++) {
  console.log(new String(i).padStart(2, '0'));
}
&#13;
&#13;
&#13;

我希望它可以帮助你,再见。

答案 3 :(得分:1)

for(var i = 7; i < 14; i++){
    console.log(prependZero(i));
}

function prependZero(number) {
    if (number < 10 && number >= 0) {
        number = '0' + number;
    }
    
    return number;
}

答案 4 :(得分:0)

检查此代码。这是建立在功能

<script>
    for (var i = 7; i < 14; i++) {
        console.log(i.toString().padStart(2, "0"));
    }
   </script>

输出:

07  
08  
09  
10  
11  
12  
13

你也可以使用切片

 for (var i = 7; i < 14; i++) {
            console.log(("00" + i).slice(-2));
        }

如果您使用切片和数字&gt; 100

for (var i = 99; i < 104; i++) {
        console.log(("00" + i).slice(-3));
    }