我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
当前回答
我的版本:
`${Math.trunc(num / 10)}${Math.trunc(num % 10)}`;
const func = (num) => '${Math.trunc(num / 10)}${Math.trunc(num % 10)}'; 常量数 = [1, 3, 5, 6, 8, 9, 10, 20, 56, 80]; nums.forEach(num => console.log(func(num)));
其他回答
在任意数字中使用toLocaleString()方法。因此,对于数字6,如下所示,您可以得到所需的结果。
(6).toLocaleString('en-US', {minimumIntegerDigits: 2, useGrouping:false})
将生成字符串'06'。
JavaScript没有内置的数字格式化器,但是有一些库可以实现这个功能:
下划线。String提供了sprintf函数(以及许多其他有用的格式化方法) Javascript-sprintf,其中下划线。字符串借用。
“${}数量”.replace (/ ^ (\ d) /美元,' 0 $ 1 ');
正则表达式是最好的。
这是我的版本。可以很容易地适应其他场景。
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();
}
似乎你得到的是一个字符串,而不是一个数字。用这个:
var num = document.getElementById('input').value,
replacement = num.replace(/^(\d)$/, '0$1');
document.getElementById('input').value = replacement;
这里有一个例子:http://jsfiddle.net/xtgFp/