对于输入类型为 hh:mm 格式验证的时间, 试过以下模式
pattern="^([01]\d|2[0-3]):([0-5]\d)$"
要求需要限制 00:00 并允许 24:00 , 如此更新的模式
pattern="^(24:00)|(([01]\d|2[0-3]):([0-5]\d))$"
现在允许24:00,请帮助如何限制00:00格式,
链接(示例代码): https://www.w3schools.com/code/tryit.asp?filename=FPCIVB1OCQ04
答案 0 :(得分:4)
这个正则表达式应该有效:
^(?!00:00)(24:00|([0-1]\d|2[0-3]):[0-5]\d)$
<强>解释强>:
Demo - 更新^ 2
您可以在此link
中详细了解正则表达式negative lookahead
答案 1 :(得分:1)
答案 2 :(得分:1)
试试这个^(24:00)|((0[1-9]|1\d|2[0-3]):([0-5]\d))|(00:(0[1-5]|[1-9]0|[1-5][1-9]))$
<!DOCTYPE html>
<html>
<body>
<p>Takes 00:01 to 24:00, we need to restrict 00:00</p>
<form action="#">
Input: <input type="text" name="time_input" pattern="^(24:00)|((0[1-9]|1\d|2[0-3]):([0-5]\d))|(00:(0[1-5]|[1-9]0|[1-5][1-9]))$" title="Invalid input">
<input type="submit">
</form>
</body>
</html>
答案 3 :(得分:0)
请尝试"^(20|21|22|23|[01]d|d)(([:][0-5]d){1,2})$"
按照建议编辑
"^(24:00)|((0[1-9]|1\d|2[0-3]):([0-5]\d))|(00:(0[1-9]|[1-5]\d))$"
这应该可以正常工作
答案 4 :(得分:0)
首先,^
属性不需要$
和pattern
个锚点。它们会自动应用against input string:
检查控件值的正则表达式。该
pattern
必须与整个值匹配,而不仅仅是某个子集。
其次,你只需要在你的正则表达式前面添加一个负面的预测就可以在00:00
上立即失败:
pattern="(?!00:00)(?:(?:[01]\d|2[0-3]):[0-5]\d|24:00)"
答案 5 :(得分:-2)
我认为这可能对你有所帮助
(?!00)[0-2][0-4]:[0-5][0-9]