日期:2014-05-18  浏览次数:20801 次

求日期的正则表达式
求日期的正则表达式:格式为   yyyy-mm-dd

------解决方案--------------------
日期无法使用正则表达式来判断格式的,因为其中涉及到大月、小月、平年、闰年等一系列的逻辑判断,只能通过程序来实现判断。
------解决方案--------------------
自己写了一个,初步验证正确:

时间验证:^(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$
^(2[0-3]|[0-1]?\d):([0-5]?\d):([0-5]?\d)$

润年:((19|20)(([13579][26])|([02468][048])))
非闰年:((19|20)(([02468][1235679])|([13579][01345789])))

2月:0?2
大月:((0?[13578])|(1[02]))
小月:((0?[469])|11)

大月+天:(((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))
小月+天:(((0?[469])|11)-((0?[1-9])|([12][0-9])|30))

润年2月+天:(0?2-((0?[1-9])|([12][0-9])))
非闰年2月+天:(0?2-((0?[1-9])|(1[0-9])|(2[0-8])))

闰年完整日期:
(((19|20)(([13579][26])|([02468][048])))-((((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))|(((0?[469])|11)-((0?[1-9])|([12][0-9])|30))|(0?2-((0?[1-9])|([12][0-9])))))

非闰年完整日期:
(((19|20)(([02468][1235679])|([13579][01345789])))-((((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))|(((0?[469])|11)-((0?[1-9])|([12][0-9])|30))|(0?2-((0?[1-9])|(1[0-9])|(2[0-8])))))

全部完整日期:
((((19|20)(([13579][26])|([02468][048])))-((((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))|(((0?[469])|11)-((0?[1-9])|([12][0-9])|30))|(0?2-((0?[1-9])|([12][0-9])))))|(((19|20)(([02468][1235679])|([13579][01345789])))-((((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))|(((0?[469])|11)-((0?[1-9])|([12][0-9])|30))|(0?2-((0?[1-9])|(1[0-9])|(2[0-8]))))))

------解决方案--------------------
用正则表达式只能做非常简单的判断:

\d{4}-[01]\d-[0123]\d

------解决方案--------------------
一个字 "强 "
------解决方案--------------------
匹配日期格式为 yyyy-mm-dd的正则表达式
/^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/
------解决方案--------------------
两个字:天书