正则表达式的日期不起作用

时间:2013-07-26 12:58:43

标签: regex date

我在格式dd-mm-yyyy

中使用以下正则表达式
^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$
                                                     ^^^^^

有了这个正则表达式,我相信我只能使用19xx年和20xx年。我希望用户可以从20xx到99xx输入。

为此,我尝试了以下,但它不起作用。

^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]([20-99])\d\d$
                                                     ^^^^^^^

我不太了解正则表达式,但基于0[1-9]我认为([20-99])会有效。

我应该在上面的正则表达式中进行哪些更改,以便我可以输入2000-9999作为年份?

1 个答案:

答案 0 :(得分:4)

^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]([2-9][0-9])\d\d$

^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.][2-9]\d\d\d$

^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.][2-9]\d{3}$