我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
当前回答
“${}数量”.replace (/ ^ (\ d) /美元,' 0 $ 1 ');
正则表达式是最好的。
其他回答
你可以:
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
我建立了一个非常简单的格式函数,每当我需要一个简单的日期格式化时,我就调用它。当数字小于10时,它处理将个位数格式化为两位数。它踢出的日期格式为2018年9月29日星期六- 00:05:44
这个函数被用作utils变量的一部分,所以它被称为:
let timestamp = utils._dateFormatter('your date string');
var utils = {
_dateFormatter: function(dateString) {
let d = new Date(dateString);
let hours = d.getHours();
let minutes = d.getMinutes();
let seconds = d.getSeconds();
d = d.toDateString();
if (hours < 10) {
hours = '0' + hours;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (seconds < 10) {
seconds = '0' + seconds;
}
let formattedDate = d + ' - ' + hours + ':' + minutes + ':' + seconds;
return formattedDate;
}
}
这里有一个简单的递归解决方案,适用于任何数量的数字。
function numToNDigitStr(num, n)
{
if(num >= Math.pow(10, n - 1)) { return num; }
return "0" + numToNDigitStr(num, n-1);
}
@Lifehack的回答对我很有用;我想我们可以用一行来表示正数
String(input).padStart(2, '0');
我的例子是:
<div id="showTime"></div>
function x() {
var showTime = document.getElementById("showTime");
var myTime = new Date();
var hour = myTime.getHours();
var minu = myTime.getMinutes();
var secs = myTime.getSeconds();
if (hour < 10) {
hour = "0" + hour
};
if (minu < 10) {
minu = "0" + minu
};
if (secs < 10) {
secs = "0" + secs
};
showTime.innerHTML = hour + ":" + minu + ":" + secs;
}
setInterval("x()", 1000)