我找到(dd / MM / yyyy HH:mm:ss)[24小时]的正则表达式
( ^(([0-2]?[0-9]|3[0-1])/([0]?[1-9]|1[0-2])/[1-2]\d{3}) (20|21|22|23|[0-1]?\d{1}):([0-5]?\d{1}):([0-5]?\d{1})$ )
可以请任何人为我(MM/dd/yyyy hh:mm:ss TT)
[12小时]提供一个RegExp。检查条件如下,
yyyy> = 1970
dd&& MM> = 01(双位数字,而不是单个数字)。
答案 0 :(得分:4)
如果您希望正则表达式解决整个问题,请尝试以下方法:
^((?:[0][1-9])|(?:[1][1-2]))/((?:[0][1-9])|(?:[1-2][0-9])|(?:[3][0-1]))/((?:19[7-9][0-9])|(?:[2-9][0-9]{3})) ((?:1[0-2])|(?:0[1-9])):([0-5][0-9]):([0-5][0-9]) ([PA]M)$
答案 1 :(得分:2)
不要在正则表达式中做数学。
^(\d{1,2})/(\d{1,2})/(\d{4}) (?\d{1,2}):(\d{1,2}):(\d{1,2})( [AP]M)?$
var groups = input.match(regex);
var valid = groups
&& Number(groups[1]) > 0 && Number(groups[1]) <= 31
&& Number(groups[2]) > 0 && Number(groups[2]) <= 12
&& Number(groups[3]) >= 1970
&& Number(groups[4]) < (groups[7] ? 12 : 24)
&& Number(groups[5]) < 60
&& Number(groups[6]) < 60
如果您确实需要在正则表达式中对此进行编码,请参阅http://www.regular-expressions.info/numericranges.html。
答案 2 :(得分:1)
试试这个正则表达式:
^(([0-2]?[0-9]|3[0-1])/([0]?[1-9]|1[0-2])/[1-2]\d{3}) (20|21|22|23|[0-1]?\d{1}):([0-5]?\d{1}):([0-5]?\d{1}) [AP]M$
PS:我刚刚添加了部分以包含AM / PM,但未验证您之前正在使用的正则表达式。