日期正则表达式yyyy-mm-dd 日期正则表达式语法
- 网络推广
- 2024-12-26 04:35
- 1
我在你原来的正则上作了修改,原功能不变。
日期正则表达式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,本站将立刻删除。
下一篇