严格的日期验证包括格式和逻辑上的合法性!
^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1/d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$
^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1/d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$
Matches: [2002-01-31], [1997-04-30], [2004-01-01] [ More Details]
No-Matches: [2002-01-32], [2003-02-29], [04-01-01]
No-Matches: [2002-01-32], [2003-02-29], [04-01-01]