【问题标题】:HTML time input validation using regex ( don't allow 00:00 but want allow 24:00)使用正则表达式的 HTML 时间输入验证(不允许 00:00 但希望允许 24:00)
【发布时间】:2018-08-22 20:30:00
【问题描述】:

对于 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

【问题讨论】:

标签: html regex angular validation


【解决方案1】:

我想这可能对你有帮助

 (?!00)[0-2][0-4]:[0-5][0-9]

【讨论】:

  • 这不允许任何以00:开头的东西
  • 发帖前需要测试,还是不匹配00:
【解决方案2】:

试试这个:

^(24:00)|((0[1-9]|1\d|2[0-3]):([0-5]\d))|(00:(0[1-9]|[1-5][0-9]))$

Demo

它对00 小时有额外的处理,只允许非零分钟部分。

【讨论】:

  • 已修复 00:11 并更新了演示链接。谢谢@PeterB
  • 我想你和我的回答是一样的 :(
  • 此模式允许 00:77。请检查,因为它不正确。
  • 不能将00:(0[1-9]|[1-5]0|[1-5][1-9]) 缩短为00:(0[1-9]|[1-5][0-9])
【解决方案3】:

试试这个^(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>

【讨论】:

  • 这与00:07 不匹配,但与00:90 匹配。真的不需要这么长。
【解决方案4】:

这个正则表达式应该可以工作:

^(?!00:00)(24:00|([0-1]\d|2[0-3]):[0-5]\d)$

解释

Demo - 更新^2

您可以在此link 中阅读有关正则表达式negative lookahead 的更多信息

【讨论】:

  • 感谢@SaeedFalsafin 我接受了 (?!00:00)
  • 你不想得到“24:05”?
  • 现在,这是最终的答案。
【解决方案5】:

请试试这个"^(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))$"

这应该可以正常工作

【讨论】:

  • 可能是评论。
  • 声望低于50,不能到处评论
  • 对你也一样。 :)
  • 您应该使用\d 而不是d。即使改变了,它仍然不允许24:00
  • @Ramesh :您的模式允许 00:77。请检查,因为它不正确
【解决方案6】:

首先,pattern 属性上不需要 ^$ 锚点。它们会自动应用against input string

检查控件值的正则表达式。这 pattern 必须匹配整个值,而不仅仅是某个子集。

其次,您只需要在您的正则表达式前面添加一个负前瞻,即可在 00:00 上立即失败:

pattern="(?!00:00)(?:(?:[01]\d|2[0-3]):[0-5]\d|24:00)"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2011-01-04
    • 2021-07-05
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多