年月日正则表达式

我网上看到一则表达式其中有一点不太明白,废话不说了,直接上代码。以上表达式并不是最优的,至少以下的方式会比较优良:/^((((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,也写反了吧。

还请各位仁兄帮忙解答
展开
 我来答
梦云途
2010-06-17 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:30万
展开全部
【13-9】代表的含义并不是【139】,因为【】运算符取得只是括号内的单一字符,因此它表达的含义是 1月后者3到9月中的任何一个月,比如输入的是1月会匹配,但如果是二月就不会匹配,类似的,输入3到9月的任何一月都会匹配。
秒懂百科精选
高粉答主

2021-03-28 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式