如何在使用Javascript将字符串更改为数字时保留前导零?

如何在使用Javascript将字符串更改为数字时保留前导零?,javascript,type-conversion,Javascript,Type Conversion,如何将字符串(如“03”)转换为数字,并在字符串开头保留零?使用Number(“03”)将删除前导的0并返回3,但我想保留0。我该怎么做呢 以下是我的上下文JS函数: 函数格式(输入,单位){ if(新的RegExp(单位为“i”).test(‘分-秒’)){ if(String(input).length==1)返回数字(`0${input}`); 否则返回输入; } 否则,如果(单位==‘小时’){ 返回输入; } } 谢谢 编辑:到目前为止我得到了什么 let timer={ 小时:0,

如何将字符串(如
“03”
)转换为数字,并在字符串开头保留零?使用
Number(“03”)
将删除前导的
0
并返回3,但我想保留
0
。我该怎么做呢

以下是我的上下文JS函数:

函数格式(输入,单位){
if(新的RegExp(单位为“i”).test(‘分-秒’)){
if(String(input).length==1)返回数字(`0${input}`);
否则返回输入;
}
否则,如果(单位==‘小时’){
返回输入;
}
}
谢谢

编辑:到目前为止我得到了什么

let timer={
小时:0,
会议记录:1,
秒:30,,
UpdateTimeDisplay(){
document.getElementById('hour').innerHTML=this.hour;
document.getElementById('minute').innerHTML=String(格式为this.minutes,'minute');
document.getElementById('second').innerHTML=String(格式为this.seconds,'second');
},
startTimer(){
const{updatetimedisplay:updateDisplay}=this;
let update=setInterval(=>{
这是1.5秒-=1;
如果(本秒<0){
这个秒=59;
这1.5分钟-=1;
}
如果(该值小于0.5分钟){
这1.5分钟=59;
这1.4小时-=1;
}
updateDisplay();
}, 1000);
}
};
timer.updateTimerDisplay();
timer.startTimer();
函数格式(输入,单位){
if(新的RegExp(单位为“i”).test(‘分-秒’)){
if(String(input).length==1)返回`0${input}`;
else返回字符串(输入);
}
}
一些问题:

  • this.hours
    的拼写:应为
    this.hours
  • 通过调用
    updateDisplay
    您不会传递
    的预期值。最好只保留方法的原始名称,并使用
    this.updateTimeDisplay
  • 不要将带0前缀的字符串转换回数字:您对要显示的内容感兴趣,所以请保留字符串格式
在不改变代码中太多其他内容的情况下,上述更正使其正常工作:

let timer={
小时:0,
会议记录:1,
秒:30,,
UpdateTimeDisplay(){
//使用textContent,而不是innerHTML(即用于HTML内容)
document.getElementById('hour').textContent=this.hours;//拼写!
//函数格式返回字符串,因此无需对其调用字符串:
document.getElementById('minute').textContent=format(this.minutes,'minute');
document.getElementById('second').textContent=format(this.seconds,'second');
},
startTimer(){
//不要将函数引用读入变量,因为这样会丢失此绑定
//-----const{updatetimedisplay:updateDisplay}=this;
let update=setInterval(=>{
这是1.5秒-=1;
如果(本秒<0){
这个秒=59;
这1.5分钟-=1;
}
如果(该值小于0.5分钟){
这1.5分钟=59;
这1.4小时-=1;
}
//通过在这里使用'this.'可以将该引用传递给函数
this.updateTimerDisplay();
}, 1000);
}
};
timer.updateTimerDisplay();
timer.startTimer();
函数格式(输入,单位){
//这里的RegExp有些过分。只需使用包括:
if(['minute','second'].includes(unit.toLowerCase())){
//不使用数字转换:它必须是字符串:
if(String(input).length==1)返回`0${input}`;
else返回字符串(输入);
}
}

JavaScript数字没有前导零?我可以问你为什么需要前导零吗?数字是数字,不是字符串。要查看前导零,甚至其十进制表示形式,始终需要将其转换回字符串。@evolutionxbox这是一个计时器,我希望能够像时钟一样将零添加到分和秒的开头。在这种情况下,您指的是字符串,不是一个数字。你能提供一个你希望如何使用它的例子吗?也许到目前为止你都做了些什么?