2

我正在尝试验证 mm-dd-(2012~2099) 日期格式。

我有以下正则表达式。

^(0[1-9]|1[0-2])-(0[1-9]|[10-31])-(20[12-99])$

当我运行以下代码时,我得到了错误。这个正则表达式有什么问题?

var reg = new RegExp("^(0[1-9]|1[0-2])-(0[1-9]|[10-31])-(20[12-99])$")
reg.test("05-33-2012")**

当我取出年份部分,然后测试“05-33”时,它可以工作。

4

1 回答 1

4

正如 Oli 所说,[12-99] 并没有像你认为的那样做。

具体来说,-指的是一系列字符,而不是数字。所以[12-99]匹配...

1
2-9
9

该表达式20(1[2-9]|[2-9][0-9])适用于日期 2012-2099

于 2012-06-20T18:20:51.443 回答