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

JavaScript中有数字格式化器吗?


当前回答

AS数据类型在Javascript中是动态确定的,它将04视为4 如果值小于10,则使用条件语句,然后在其前面添加0,使其成为字符串 例如,

var x=4;
  x = x<10?"0"+x:x
 console.log(x); // 04

其他回答

如果数字大于9,则将数字转换为字符串(一致性)。否则,加一个零。

function n(n){
    return n > 9 ? "" + n: "0" + n;
}

n( 9); //Returns "09"
n(10); //Returns "10"
n(999);//Returns "999"

JavaScript没有内置的数字格式化器,但是有一些库可以实现这个功能:

下划线。String提供了sprintf函数(以及许多其他有用的格式化方法) Javascript-sprintf,其中下划线。字符串借用。

这是我的版本。可以很容易地适应其他场景。

function setNumericFormat(value) {
    var length = value.toString().length;
    if (length < 4) {
        var prefix = "";
        for (var i = 1; i <= 4 - length; i++) {
            prefix += "0";
        }
        return prefix + value.toString();
    }
    return  value.toString();
}

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

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 pad2(number) {
   return (number < 10 ? '0' : '') + number
}

例子:

document.write(pad2(0) + '<br />');
document.write(pad2(1) + '<br />');
document.write(pad2(2) + '<br />');
document.write(pad2(10) + '<br />');
document.write(pad2(15) + '<br />');

结果:

00
01
02
10
15