我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。

JavaScript中有数字格式化器吗?


当前回答

在所有现代浏览器中都可以使用

numberStr.padStart(2, "0");

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

函数 zeroPad(numberStr) { 返回 numberStr.padStart(2, “0”); } 变量数 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 数字.forEach( 函数(数字) { var numString = num.toString(); var ppadNum = zeroPad(numString); console.log(填充数字); } );

其他回答

    function colorOf(r,g,b){
  var f = function (x) {
    return (x<16 ? '0' : '') + x.toString(16) 
  };

  return "#" +  f(r) + f(g) + f(b);
}

为ES6箭头函数更新(几乎所有现代浏览器都支持,参见CanIUse)

const formatNumber = n => ("0" + n).slice(-2);

这里有一个简单的递归解决方案,适用于任何数量的数字。

function numToNDigitStr(num, n)
{
    if(num >=  Math.pow(10, n - 1)) { return num; }
    return "0" + numToNDigitStr(num, n-1);
}

这里有一个非常简单的解决方法,对我来说很有效。

首先声明一个变量来保存你的号码。

var number;

现在将数字转换为字符串,并将其保存在另一个变量中;

var numberStr = number.toString();

现在你可以测试这个字符串的长度,如果它小于你想要的长度,你可以在开头追加一个' 0 '。

if(numberStr.length < 2){
      number = '0' + number;
}

现在根据需要使用数字

console.log(number);
("0" + (date.getMonth() + 1)).slice(-2);
("0" + (date.getDay())).slice(-2);