/^\d{1,2}[:][0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)
就是我拥有的.这将分钟限制在00-59.但是,它不会将小时数限制在0到12之间.对于相似性和一致性,如果可能的话,我想单独使用RegEx.
此外,我希望第一个数字是可选的.即09:30接受以及9:30.我玩了范围,但超出范围的东西总是可以接受的.
Tre*_*ner 18
假设您在12小时内工作,0不是有效小时,也应该被排除(如Jon指出的那样).这是一个基本的解决方案:
/^(0?[1-9]|1[012]):[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)
一个24小时的正则表达式匹配器,其工作方式类似:
/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)
ken*_*ytm 12
0 - 9和10 - 12例需要分开处理.(这两个规则可以结合使用|.)
/^(?:0?\d|1[012]):[0-5]\d$/
Run Code Online (Sandbox Code Playgroud)
这里
(?:…) 是一个非捕获组x|y 意味着匹配任一模式0?\d 匹配0 - 9或00 - 091[012] 比赛10 - 12.对于寻找 24 小时格式匹配的人们,
hh:mm:ss 或 h:mm:ss :
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]:[0-5][\d]$/.test(timestr)
Run Code Online (Sandbox Code Playgroud)
hh:mm 或 h:mm :
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]$/.test(timestr)
Run Code Online (Sandbox Code Playgroud)
该站点非常适合进行测试:https : //www.regexpal.com/
补充:完整性的解释:
^: 字符串的开头,$: 字符串的结尾。所以我们把表达式放在一个^..$块中,以确保我们的模式之外没有任何东西。(2[0-3]|[0-1]?[\d]): 转换为2[0-3]OR[0-1]?[\d]2[0-3] : 20, 21, 22, 23[0-1]?[\d]: 0 或 1 或没有 ( ?) 后跟任何单个数字 ( \d)。因此,这适用于从 0 到 19 的数字。: 就是那个性格[0-5][\d] :从 00 到 59 的数字。注意:这不会容忍毫米位置的一位数。| 归档时间: |
|
| 查看次数: |
27414 次 |
| 最近记录: |