首页 > 网络推广 >  > 

日期正则表达式yyyy-mm-dd 日期正则表达式语法

我在你原来的正则上作了修改,原功能不变。

日期正则表达式yyyy-mm-dd 日期正则表达式语法日期正则表达式yyyy-mm-dd 日期正则表达式语法


日期正则表达式yyyy-mm-dd 日期正则表达式语法


在原正则末尾加上以下内容:

|^(?:(?:0{2})?0{2})[/-.](?:0?0)[/-.](?:0?0)$

新正则可以匹配0000-00-00,00-00-00,00-0-0(还可用/或.作为分隔符)。

如果只希望匹配0000-00-00,请把末尾追加的内容换成:

|^(?:0{4})[/-.](?:00)[/-.](?:00)$(仍可用/或.作为分隔符,若想指定以-分隔把[/-.]改成[-])

^(?:(?:d[48]00|(?:d[0-35-79](?:[2468][048]|[13579][26]))|[48])-0?2-29 #验证闰年的2月29号

|d+-(?:[13578]|10|12)-31 #所有有31号的日期

|d+-(?:(?:1[1-2]|0?[13-9])-(?:30|[0-2]?d)|0?2-(?:1?d|2[1-8])) #30天的

)$

程序略为修改下就可以啦,远程帮你解决吧。

匹配1600-2999年yyyy或yyyy-mm或yyyy-mm-dd ,基本上把闰年和2月等的情况都考虑进去了:

((1[6-9]|[2-9]d)d{2})|(((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)))

var time = document.getElementById("udate").value;

var r = new RegExp("^[1-2]d{3}-(0?[1-9]||1[0-2])-(0?[1-9]||[1-2][1-9]||3[0-1])$");

r.test(time);

YYYY-MM-DD HH:SS:MM这样格式的正则表达式

^(d{4})-([0-1]d)-([0-3]d)s([0-5]d):([0-5]d):([0-5]d)$

这样也不是很完美的写法,比如说会出现 2000-19-39 这样的年份,不过数字的格式还是全部匹配到了。

如果是日期格式,可以用以下公式转换:

=text(a1,"yyyy/mm/dd")

如果是文本格式的,可以用以下公式转换:

=right(a1,4)&"/"&left(a1,2)&"/"&mid(a1,4,2)

版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。