日期的正则表达式解释

2025-03-06 04:05:12
推荐回答(3个)
回答1:

您好,((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])

(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]

|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))

([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]

|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))

([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-

9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/

\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)

([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])

(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])

([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89]

[2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|

(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/

\._])(29)$)|(^([1][89][13579][26])([-\/\._])

(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579]

[26])([-\/\._])(0?2)([-\/\._])(29)$))

闰年的2月份有29天,因此匹配闰年日期格式为

YYYY-MM-DD的正则表达式为:

(([0-9]{2})(0[48]|[2468][048]|[13579][26])

|((0[48]|[2468][048]|[3579][26])00))-02-29

最后,将平年和闰年的日期验证表达式合并,

我们得到最终的验证日期格式为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)

DD/MM/YYYY格式的正则验证表达式为:

(((0[1-9]|[12][0-9]|3[01])/((0[13578]|1

[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|

(0[1-9]|[1][0-9]|2[0-8])/(02))/([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}))|(29/02/(([0-9]{2})(0

[48]|[2468][048]|[13579][26])|((0[48]|

[2468][048]|[3579][26])00)))

回答2:

日期有多种格式:YYYY-MM-DD等
就这个格式而言正则表达式可以表示为:
([0-9]{4})-([0-9]{2})-([0-9]{2})
其中(***)表示一个判别域,判别域中的[0-9]表示集合,即字符由0-9构成,其随后的{*}表示该集合的元素出现的次数为*,而*可以为1,2,或者一个数字4,前者表示出现1次到两次,后者表示一定出现4次。

回答3:

geti.match(/(^\s*)(\d{4})\/(0\d|\d|1[12])\/(\d|\d{2})(\s*$)/ig)
这样才是年月日。
(^\s*)若干个空白符开始
(\d{4})4个数字,这里只匹配数字没限制范围,不合理。
\/就是分隔日期的/
(0\d|\d|1[12])匹配月份
(\d|\d{2})一位数和两位数,又不合理了,超过31是不行的。
(\s*$)若干个空白符结束
/ig 全文搜索,不分大小写。