18

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

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

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

亲切的问候,

4

4 回答 4

26

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

<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:例子

于 2013-02-08T12:04:27.100 回答
19

这是代码:

<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}" />
于 2013-02-08T12:10:09.980 回答
2

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

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

/^([0-1]\d|20|21|22|23):[0-5]\d$/
于 2020-03-23T17:40:22.430 回答
1

有点短的正则表达式:

(?:[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 小时(有时您会这样做),那么只需调整负前瞻,例如“(?![5-9])”。

于 2016-01-08T17:06:28.067 回答