我的日期格式如下:2008-01-01
我目前的正则表达式(.NET)是:^((((1[6-9]|[2-9]\d)\d{2})-(0[13578]|1[02])-(0[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0[13456789]|1[012])-(0[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-02-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-02-29))$
它处理日期很好。但是,如何将正则表达式更改为仅匹配1900年到2100年之间的年份日期?
答案 0 :(得分:1)
尝试以下方法:
^((((19\d{2})|(20\d{2})|2100)-(0[13578]|1[02])-(0[1-9]|[12]\d|3[01]))|
(((19\d{2})|(20\d{2})|2100)-(0[13456789]|1[012])-(0[1-9]|[12]\d|30))|
(((19\d{2})|(20\d{2})|2100)-02-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|
[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-02-29))$
您可以看到它正常工作here。