这个(mm-dd-yyyy)正则表达式出了什么问题?

时间:2012-06-20 18:13:35

标签: regex date

我正在尝试验证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”时,它有效。

1 个答案:

答案 0 :(得分:4)

正如奥利所说,[12-99]不符合你的想法。

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

1
2-9
9

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