所有,需要一个表单验证功能的正则表达式来确定用户输入的每日时间(24h 格式,始终带有时区)或时间间隔是否可以。有 5 个可能的时区(4 个美国大陆 + UTC 作为后缀)和 2 个间隔类型(可以是 float、h 或 m 后缀)。一些有效输入的例子是
- 0:30EST(东部时间午夜半点)
- 22:15MST(山区时间 22:15)
- 12.5m(间隔12.5分钟)
Accepted answer here是一个好的开始,但我不能完全让时区后缀正则表达式工作,或者为间隔情况添加交替。
作为引用,所需时区为 EST、CST、MST、PST 和 UTC。或者,当然,任何带有几个时区的例子都足够了,如果其他 SO 读者觉得它有用,可以随时扩展。
有什么想法吗?
请您参考如下方法:
使用您链接中的示例,我添加了时区检查和间隔交替,现在开始:
^(?:(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?:[ECMP]ST|UTC)|\d+(?:\.\d+)?[mh])$
[ECMP]ST|UTC匹配 E、C、M 或 P 后跟 ST 或匹配 UTC\d+(?:\.\d+)?匹配一个或多个数字,可以选择后跟一个点和更多数字[mh]按字面意思匹配 m 或 h
