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

JavaScript中有数字格式化器吗?


当前回答

如果你想同时限制你的数字:

function pad2(number) {
  number = (number < 10 ? '0' : '') + number;
  number = number.substring(0,2);
  return number;
}

这也会对任何超过两位数的值进行切取。 我一直在扩展法纳尔的解决方案。

其他回答

这很简单,而且效果很好:

function twoDigit(number) {
  var twodigit = number >= 10 ? number : "0"+number.toString();
  return twodigit;
}

快速和肮脏的一个班轮....

function zpad(n, len) {
  return 0..toFixed(len).slice(2,-n.toString().length)+n.toString();
}

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

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();
}

如果你想同时限制你的数字:

function pad2(number) {
  number = (number < 10 ? '0' : '') + number;
  number = number.substring(0,2);
  return number;
}

这也会对任何超过两位数的值进行切取。 我一直在扩展法纳尔的解决方案。

您也可以使用Intl一个ECMAScript国际API,它可以像这样简单地自定义您的号码

let Number= Intl.NumberFormat('en-US', {
  minimumIntegerDigits: 2,
  minimumFractionDigits: 2
});

console.log(Number.format(2));
//02.00

和许多具有Intl的嵌入式函数,你可以放一个前缀符号,符号和货币格式等文档,只需点击这里