如何格式化javascript中的字符串(数字)打印

时间:2011-11-22 09:51:36

标签: javascript string-formatting

例如。我想打印1到20之间的数字

但我希望打印1为01,2为02等等。

5 个答案:

答案 0 :(得分:3)

formatNumber = function( num )
{
  if ( num < 10 )
  {
    return "0" + num;
  }
  else
  {
    return "" + num;
  }
}

答案 1 :(得分:3)

这是一个通用的'zeroPad'功能:

function zeroPad(nr,base){
        base = base || 10;
        var  len = (String(base).length - String(nr).length)+1;
        return len > 0 ? new Array(len).join('0')+nr : nr;
}
//usage
zeroPad(5);       //=> "05"
zeroPad(50,1000); //=> "0050"
zeroPad(50);      //=> "50"

或作为号码扩展:

Number.prototype.zeroPad = Number.prototype.zeroPad ||
    function(base){
            base = base || 10;
            var  len = (String(base).length - String(this).length)+1;
            return len > 0 ? new Array(len).join('0')+this : this;
};
//usage
(5).zeroPad();      //=> "05"
(50).zeroPad(1000); //=> "0050"
(50).zeroPad();     //=> "50"

答案 2 :(得分:2)

让我们滥用三元运算符:

for(var n = 1; n <= 20; n++) {
    console.log((n < 10 ? '0' : '') + n)
}

答案 3 :(得分:2)

这是更短的版本:

leadingZero = function(num){
    return (num < 10) ? "0"+num : num;
}

答案 4 :(得分:0)

使用String.prototype.padStart

`${num}`.padStart(2, '0');

来自MDN

  

padStart()方法用另一个字符串填充当前字符串(如果需要,重复),以便生成的字符串达到给定长度。填充从当前字符串的开头(左侧)开始应用。

padStart仅在字符串而非数字上定义 - 因此您需要在致电num.toString()之前将数字转换为字符串(`${num}`;或更具惯用语padStart) 。第一个参数是结果字符串的最小长度,因此,如果您的数字达到数百个`${num}`.padStart(3, '0')

&#13;
&#13;
// Create an array of the numbers 1 through 20.
const arr = Array.from({ length: 20 }, (_, i) => i + 1);

arr.forEach(i => {
  // Pad each one digit number with a leading zero.
  console.log(`${i}`.padStart(2, '0'));
})
&#13;
&#13;
&#13;

相关问题