年月日正则表达式
我网上看到一则表达式其中有一点不太明白,废话不说了,直接上代码。以上表达式并不是最优的,至少以下的方式会比较优良:/^((((19|20)\d{2})-(0?[13-9]...
我网上看到一则表达式其中有一点不太明白,废话不说了,直接上代码。
以上表达式并不是最优的,至少以下的方式会比较优良:
/^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/
该表达式的匹配规则(按以下序号为顺序):
1.匹配除了2月份之外的1-30日
2.若1无法匹配,则匹配1,3,5,7,8,10,12月份的31日
3.若2无法匹配,则匹配2月份的1-28日
4.若以上都无法匹配,那只可能剩下一天,那就是闰年2月份的最后一天2月29日
我不明白的地方是“[13-9]”,这是什么意思?应该不是“[139]”如果是9到13,也写反了吧。
还请各位仁兄帮忙解答 展开
以上表达式并不是最优的,至少以下的方式会比较优良:
/^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/
该表达式的匹配规则(按以下序号为顺序):
1.匹配除了2月份之外的1-30日
2.若1无法匹配,则匹配1,3,5,7,8,10,12月份的31日
3.若2无法匹配,则匹配2月份的1-28日
4.若以上都无法匹配,那只可能剩下一天,那就是闰年2月份的最后一天2月29日
我不明白的地方是“[13-9]”,这是什么意思?应该不是“[139]”如果是9到13,也写反了吧。
还请各位仁兄帮忙解答 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询