我想解析一个hh:mm:ss
字符串。一个简单的方法是([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)
期望2:3:24
或02:03:24
字符串。
我想更进一步,即使在像这样的情况下也能通过验证
- 如果你只输入56,它应该是通过,因为56可以被认为是56秒[SS]
- 如果您输入 2:3 或 02:03 或 02:3 或 2:03 它应该通过。2 分 3 秒 [MM:SS]
- 如果您输入 20:30:12 通行证,时间为 20 小时 30 分 12 秒 [HH:MM:SS]
- 如果你输入 78:12 ,不要超过 78 分钟是错误的......
基本上,如果找到一个“:”,则将“:”之前的数字视为 MM,将“:”之后的数字视为 SS 。如果找到两个“:”,则认为是 HH:MM:SS
我想出了这个模式。
(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)
它似乎工作正常。我想知道任何其他更简单的正则表达式,可以完成这项工作。