【问题标题】:24 hour time regex for HTML 5HTML 5 的 24 小时时间正则表达式
【发布时间】:2013-02-08 12:02:27
【问题描述】:

想询问 HTML 5 (HH:MM) 中 24 小时时间格式的可能正则表达式。

如果可能,请告诉可以在 HTML 5 的 Pattern 属性中使用的正则表达式

时间预计为 24 小时制(HH 不超过 23)。

亲切的问候,

【问题讨论】:

    标签: regex html


    【解决方案1】:

    我认为这是一种可能的方法:

    <input type="text" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" id="24h"/>
    <input type="text" pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}" id="24h"/>
    

    http://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/

    ([01]?[0-9]|2[0-3]):[0-5][0-9]
    

    看看这个 jsfiddle:example

    【讨论】:

    • 谢谢 .. 早点看到但没用 .. 可能少了一个括号 .. :) 。不过谢谢你..
    • @AbdulAli 检查我的 cmets
    • 谢谢!拯救了我的一天!
    • 我建议您添加一些占位符,例如:HH:MM 或一些示例。
    • @raduflorescu 我已经删除了我之前的评论,这样我就不会混淆 - 意识到为什么模式匹配不起作用,我没有通过正常的提交过程提交表单 - 应用程序
    【解决方案2】:

    代码如下:

    <input type="text" pattern="[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}" />
    

    它确实允许无效的小时值:24、25、26、27、28、29,如果你想更加正确,你可以这样做:

    <input type="text" pattern="([0-1]{1}[0-9]{1}|20|21|22|23):[0-5]{1}[0-9]{1}" />
    

    【讨论】:

    • 如果谈到时间,我当然想要额外正确的方式,谢谢,它就像一个魅力!
    【解决方案3】:

    如果您想强制使用 HH:MM 格式(例如 00:00、23:59)

    然后,你可以使用这样的东西:

    /^([0-1]\d|20|21|22|23):[0-5]\d$/
    

    【讨论】:

      【解决方案4】:

      有点短的正则表达式:

      (?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1}
      

      那么完整:

      <input type="text" pattern="(?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1}" />
      

      在第一个非捕获组(“(?:)”)中,我们精确匹配一个数字,0、1 或 2,而不是 4-9(负前瞻“(?!)”)。然后我再匹配一个数字,因为它可以是 0-9 中的任何一个,我们可以使用 \d 快捷方式。然后我们匹配分隔符“:”。然后是 0-5 之间的一位数字和 0-9 之间的一位数字(再次使用“\d”)。 如果由于某种原因您还需要匹配 24 小时(有时您会这样做),那么只需调整负前瞻,例如。 G。 “(?![5-9])”。

      【讨论】:

      • 你可以通过去掉{1}来让它更短,这根本没有效果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多