求日期的正则表达式
求日期的正则表达式:格式为 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)$/
------解决方案--------------------两个字:天书