0

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

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

但现在我想允许如果有人以这种格式输入 00/00/0000,日期应该是有效的。

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

4

3 回答 3

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)
于 2013-10-04T14:44:32.737 回答
1

如果我发现你的偏差,你想要任何允许的数字,在这种情况下

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

看起来像你的朋友。

如果不是这种情况,并且您只想允许合理的日期加上00/00/0000,请查看Blazemonger 的答案

于 2013-10-04T14:47:51.300 回答
1

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

/(00\/00\/0000) | ((0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d)/
于 2013-10-04T15:23:43.140 回答