【发布时间】:2019-03-22 09:48:18
【问题描述】:
我正在使用这个正则表达式来验证时间:
var time = document.getElementById("time").value;
var isValid = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/.test(time);
if (isValid === false) {
errors += '- ' + ' Invalid Time Input.\n';
}
if (errors)
alert('The following error(s) occurred:\n' + errors);
document.MM_returnValue = (errors === '');
虽然这在大多数情况下都有效,但仍接受 9:50 等输入。我需要强制用户在不到 10 分钟的时间内输入前导 0。即有效时间应该是 09:50 我在这里错过了什么?
【问题讨论】:
-
2[0-4]必须是2[0-3]。没有24:59时间。此外,您似乎只需要删除[0-1]?、/^([01][0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/中的?。不确定您是否需要捕获组,/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/应该没问题。 -
哇,这实际上很有帮助。这行得通。谢谢。
标签: javascript regex time