【发布时间】:2021-03-20 22:14:17
【问题描述】:
如何将"03" 等字符串转换为数字并在字符串开头保留零?使用Number("03") 将删除前导0 并返回3,但我想将0 保留在那里。我该怎么做呢?
这是我的上下文 JS 函数:
function format(input, unit) {
if (new RegExp(unit, 'i').test('minute second')) {
if (String(input).length === 1) return Number(`0${input}`);
else return input;
}
else if (unit === 'hour') {
return input;
}
}
谢谢!
编辑:到目前为止我得到了什么
let timer = {
hours: 0,
minutes: 1,
seconds: 30,
updateTimerDisplay() {
document.getElementById('hour').innerHTML = this.hour;
document.getElementById('minute').innerHTML = String(format(this.minutes, 'minute'));
document.getElementById('second').innerHTML = String(format(this.seconds, 'second'));
},
startTimer() {
const { updateTimerDisplay: updateDisplay } = this;
let update = setInterval(_ => {
this.seconds -= 1;
if (this.seconds < 0) {
this.seconds = 59;
this.minutes -= 1;
}
if (this.minutes < 0) {
this.minutes = 59;
this.hours -= 1;
}
updateDisplay();
}, 1000);
}
};
timer.updateTimerDisplay();
timer.startTimer();
function format(input, unit) {
if (new RegExp(unit, 'i').test('minute second')) {
if (String(input).length === 1) return `0${input}`;
else return String(input);
}
}
【问题讨论】:
-
JavaScript 数字没有前导零?请问您需要前导零的原因是什么?
-
数字是数字,而不是字符串。要查看前导零,甚至是其十进制表示,始终是将其转回字符串的过程。
-
@evolutionxbox 这是一个计时器,我希望能够像时钟一样在分钟和秒的开头添加零。
-
在这种情况下,您说的是字符串,而不是数字。
-
能否提供minimal reproducible example 说明您希望如何使用它?也许你到目前为止做了什么?
标签: javascript type-conversion