我有正则表达式来验证MM / DD / YYYY中的日期,如下所示
(0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d
但是现在我想允许日期在有人以这种格式输入00/00/0000时有效。
任何人都可以给我建议吗?
答案 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)/