2

我有以下表达式,它将用作 HTML5“模式”属性中的日期验证。

?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))-(?:(?:0[1-9]|1[0-2])-(?:19|20)[0-9]{2}

我希望它只允许有效日期,使用“-”作为分隔符。如果是闰年,这意味着最多 2 月 29 日,其他月份则分别为 30/31。

目前,它只允许从 2(2012 年)开始的年份和最多 12 个月(12 月)的月份。但无论哪个月,它都将一天限制为 29 天。

任何人都可以帮我解决它吗?

4

2 回答 2

3

^(((0[1-9]|[12]\d|3[01])/(0[13578]|1[02])/((19|[2-9]\d)\d{ 2}))|((0[1-9]|[12]\d|30)/(0[13456789]|1[012])/((19|[2-9]\d)\d{ 2}))|((0[1-9]|1\d|2[0-8])/02/((19|[2-9]\d)\d{2}))|(29 /02/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048] ]|[3579][26])00))))$

于 2012-06-07T04:42:09.923 回答
0

我被链接到另一个用于验证使用正则表达式的好资源。 链接为许多不同的日期格式提供“最终”日期验证器,并允许所有分隔符。

于 2012-06-08T00:50:39.110 回答