想查询 HTML 5 (HH:MM) 中 24 小时时间格式的可能正则表达式。
如果可能,请告诉可以在 HTML 5 的 Pattern 属性中使用的正则表达式
时间预计为 24 小时格式(HH 不超过 23)。
亲切的问候,
我认为这是一种可能的方法:
<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"/>
([01]?[0-9]|2[0-3]):[0-5][0-9]
看看这个 jsfiddle:例子
这是代码:
<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}" />
如果您想强制使用HH:MM格式(例如 00:00、23:59)
然后,你可以使用这样的东西:
/^([0-1]\d|20|21|22|23):[0-5]\d$/
有点短的正则表达式:
(?:[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])”。