我正在使用正则表达式^(([0-9])|([0-1][0-9])|([2][0-3])):(([0- 9])|([0-5][0-9]))$
时间。这是非常好的正则表达式,但是当用户只想输入 8 或 12 之类的小时(不带冒号和分钟)时,它是不允许的。
任何人都可以建议哪些正则表达式仅适合小时或小时:分钟。
最佳答案
^(([0-9])|([0-1][0-9])|([2][0-3]))(:(([0-9])|([0-5][0-9])))?$
通过将“:mm”部分放入 ()
中并添加 ?
量词将其变为可选。
由 https://www.regexplained.co.uk/ 生成的解释
第一组(标记为“group #4”):
- 单个数字 (0..9),或
- “0”或“1”,后跟一个数字 (00..19),或
- “2”,后跟 0、1、2 或 3 (20..23)
然后是可选第二组(标记为“组#8”)
- 冒号(':'),后接
- 单个数字 (0..9),或
- 0..5 后跟一个数字 (00..59)
关于正则表达式仅显示小时或小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225981/