4

我需要一个正则表达式格式来验证 AM/PM 的时间

我用这个

^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

但这不接受任何时候。

我的时间格式将是这样的 12 小时格式(上午 03:23:15)。任何人都知道一个正则表达式来处理这个???

4

4 回答 4

2

尝试这个:

[0][0-9]|[1][0-2][:][0-5][0-9][:][0-5][0-9][ ][AM]|[PM]
于 2012-06-12T11:53:08.313 回答
2

你能试试这个吗?

([0][0-9])|([1][0-2])\:[0-5][0-9]\:[0-5][0-9][:b]*(AM|PM|am|pm)
  • 匹配 xx:yy:zz 其中
  • 第一项([0][0-9])|([1][0-2])匹配 xx 到 00-09 或 10-12
  • 随后的术语[0-5][0-9]将 yy, zz 限制为 00-59 的分、秒
  • 空格是可选的
  • 最后 AM 或 PM 以大写或小写匹配
于 2012-06-12T10:12:37.457 回答
1

[01][0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)应该符合你的例子。

[01]\d(:[0-5]\d){2} (AM|PM)如果你想简化它。

编辑:正如评论指出这不起作用,试试这个:([01][0-2]|0?[1-9])(:[0-5][0-9]){2} (AM|PM)

于 2012-06-12T10:12:42.097 回答
1

尝试这个:

(1[012]|[1-9])(:[0-5][0-9]){2}(\\s)?(?i)(am|pm)

正则表达式也包括 am pm

(\\s)?  - follow by a white space (optional)
(?i)    - next checking is case insensitive
(am|pm) - follow by am or pm
于 2012-06-12T10:09:57.473 回答