我正在开发app。它有一个形式,其中一个领域是时间。用户将以24小时格式输入时间。当用户输入07:40
之类的时间时,它可以正常工作,但是当他们输入7:00
时却没有。所以我想要的是当输入7:00
时我想在7
之前添加0。 注意我已经将:
从时间中移除并使其像700
一样。现在我想添加前导零,如果用户之前没有输入任何内容,并且如果他们在开始时输入一个数字,则保持原样。我怎样才能在javascript中实现这一点?我知道我可以使用正则表达式,但任何样本都会有所帮助。
以下是我的表现,但似乎不正确,因为它不起作用。
var regex = /^\b(0(?!\b))+/g;
if (!regex.test(time)) {
time = '0' + time;
}
答案 0 :(得分:3)
最简单的方法是从已经前缀的字符串中剪切最后的 n 数字。如果你想确保你的字符串总是4位数,你可以这样做:
time = ('0' + time).slice(-4);
假设您知道time
始终至少为三位数。当然,你当然可以写:
time = ('0000' + time).slice(-4);
但这可能在您的具体用例中没有多大意义。
此代码可以在没有任何事先检查的情况下执行,而不仅仅是在表达式匹配的情况下有条件地执行。
答案 1 :(得分:0)
你可以在删除冒号之前这样做:
time = time.replace(/^\d{1}:/, '0$&');
答案 2 :(得分:0)
这应该没问题:
var time = '7:50';
time = time.replace(/\b\d\b/g, '0$&');
在移除冒号之前。
答案 3 :(得分:0)
如果你对你的正则表达式非常具体,那就没有必要在前面添加0
了。if( /^[0-9]:[0-9]{2}$/.test( time ) ) {
time = "0" + time;
}