验证日期时间的正则表达式

可以不要秒数的:

 

^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(1[0-9])|(2[0-3]))\:(([0-5][0-9])|([0-9]))(((\s)|(\:(([0-5][0-9])|([0-9]))))?)))?$

 

可以通过下面这些个例子:
2004-2-29
1900-2-29 (非闰年小BUG,但不重要了,因实际上很少遇到)
2006-12-1
2006-1-31
2006-01-02
2006-12-05
2006-9-16 5:6:5
2006-9-16 23:59:59
2006-9-16 12:1:0
2006-9-16 0:0:0
2006-9-16 05:06:05
2006-9-16 15:15:15
2006-9-16 15:5:15
2006-9-16 0:0
不通过的:
2003-2-29 (非闰年)
等其他非法日期 .......

posted @ 2009-08-04 14:49  Nina  阅读(785)  评论(0编辑  收藏  举报