正则表达式为hh:mm am / pm格式

时间:2015-11-24 23:46:07

标签: regex

我需要严格验证学校项目的输入,时间格式为HH:MM am / pm。到目前为止,我已经得到了这个RegEx表达式:

(([01]?[0-9]):([0-5][0-9]) ([AaPp][Mm]))

这是一个有效的演示:http://regexr.com/3c9b5

唯一的问题是它接受时间13:00到19:59

正确的正常表达是什么? RegEx对我来说一直很难

6 个答案:

答案 0 :(得分:16)

你可以使用:

\b((1[0-2]|0?[1-9]):([0-5][0-9]) ([AaPp][Mm]))
EDIT:         ^ changed this from 0-1 to not accept 00:00

答案 1 :(得分:1)

这个正则表达式有3个部分,由OR运算符分隔 每个部分允许一种HH
它们是0 [1-9],[1-9]和1 [0-2]。

/(0[1-9]:[0-5][0-9]((\ ){0,1})((AM)|(PM)|(am)|(pm)))|([1-9]:[0-5][0-9]((\ ){0,1})((AM)|(PM)|(am)|(pm)))|(1[0-2]:[0-5][0-9]((\ ){0,1})((AM)|(PM)|(am)|(pm)))/

答案 2 :(得分:0)

我用了这个正则表达式

([0-9]{2})\\/([0-9]{2})\\/([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) (am|pm)

您可以尝试一下。希望这会有所帮助!

答案 3 :(得分:0)

  ([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])\s*([AaPp][Mm])

针对以下内容:

10:00 AM

10:00 PM

上午10:00

晚上10:00

晚上10:00

上午10:00

10:30 PM

23:46 am

答案 4 :(得分:0)

  String regex = "([01]?[0-9]|2[0-3]):[0-5][0-9]";
  

这将适用于24小时验证

答案 5 :(得分:0)

你可以使用这个:

^([1-9]|0[1-9]|1[0-2]):[0-5][0-9] ([AaPp][Mm])$

它将接受上午 1:00、上午 01:00、下午 12:00、晚上 11:00、下午 12:59。但不接受 00:00 am 或 00:00 PM 或 01:60 am。