如何在正则表达式中允许日期为“00/00/0000”

时间:2013-10-04 14:42:55

标签: javascript regex validation

我有正则表达式来验证MM / DD / YYYY中的日期,如下所示

(0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d

但是现在我想允许日期在有人以这种格式输入00/00/0000时有效。

任何人都可以给我建议吗?

3 个答案:

答案 0 :(得分:3)

假设您想要对通常的验证做出唯一的补充:

(0?[0-9]|1[012])[/](0?[0-9]|[12][0-9]|3[01])[/](0000|(19|20)?\d\d)

或者,更为独特:

(00\/00\/0000)|((0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d)

答案 1 :(得分:1)

如果我抓住你的漂移,你想要任何允许的数字,在这种情况下

/\d{1,2}\\\d{1,2}\\\d{4}/

看起来像你的朋友。

如果情况并非如此,并且您只想允许合理的日期 00/00/0000,请查看Blazemonger's answer

答案 2 :(得分:1)

考虑到您对该规则的单一例外情况,您似乎应该保持解决方案简单,而不是继续使已经复杂的正则表达式复杂化。

/(00\/00\/0000) | ((0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d)/