正则表达式验证h:mm格式时间,需支持最大时间8:00
解决h:mm格式时间验证(最大8:00)的正则问题
你的原正则存在两个核心问题:
- 包含无效分支
[2][0-3],会错误匹配如20:xx这类不符合要求的格式 - 未单独处理
8:00这个合法时间,仅允许单个数字的8,无法匹配带分钟的8:00
修正后的正则表达式:
/^(([0-7]:[0-5][0-9])|8:00|[0-8])$/
正则拆解说明:
[0-7]:[0-5][0-9]:匹配0:00到7:59之间的所有h:mm格式时间8:00:单独匹配允许的最大时间8:00[0-8]:匹配单个数字的小时(0到8)^和$:锚定字符串首尾,确保是完整匹配,避免出现部分匹配的情况
如果你的场景要求必须是带分钟的h:mm格式(不允许单个数字小时),可以简化为:
/^([0-7]:[0-5][0-9]|8:00)$/
内容的提问来源于stack exchange,提问作者PoPLiN
相关产品推荐
相关产品推荐

