HTML 5的24小时时间正则表达式

时间:2013-02-08 12:02:28

标签: regex html5

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

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

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

亲切的问候,

4 个答案:

答案 0 :(得分:18)

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

<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

答案 1 :(得分:15)

以下是代码:

<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}" />

答案 2 :(得分: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}" />

在第一个非捕获组(&#34;(?:)&#34;)中,我们只匹配一个数字,0,1或2后面没有4-9(负向前瞻&#34;( ?!)&#34;)。然后我再匹配一个数字,因为它可以是0-9中的任何一个,我们可以使用\ d快捷方式。然后我们匹配分隔符&#34;:&#34;。然后在0-5之间的一个数字和0-9之间的一个数字(再次与&#34; \ d&#34;)。 如果由于某种原因你需要24小时匹配(有时你也会),那么只需调整负向前瞻,e。 G。 &#34;(?![5-9])&#34;

答案 3 :(得分:1)

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

然后,您可以使用以下内容:

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