您好,((^((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)))
日期有多种格式:YYYY-MM-DD等
就这个格式而言正则表达式可以表示为:
([0-9]{4})-([0-9]{2})-([0-9]{2})
其中(***)表示一个判别域,判别域中的[0-9]表示集合,即字符由0-9构成,其随后的{*}表示该集合的元素出现的次数为*,而*可以为1,2,或者一个数字4,前者表示出现1次到两次,后者表示一定出现4次。
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 全文搜索,不分大小写。