正则表达式 验证date。格式为:YYYY-MM-DD 要求对于0000-00-00 是正确的认证。
<date><Formula>^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3-9]|1[0-2])[\/\-\.](?:29|...
<date>
<Formula>^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3-9]|1[0-2])[\/\-\.](?:29|30))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3,5,7,8]|1[02])[\/\-\.]31)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:16|[2468][048]|[3579][26])00[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1-9]|1[0-2])[\/\-\.](?:0?[1-9]|1\d|2[0-8]))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$</Formula>
<Message>日期格式不正确.</Message>
</date>
上面的公式,是我现在使用的。 可以正确的判断时间。 展开
<Formula>^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3-9]|1[0-2])[\/\-\.](?:29|30))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3,5,7,8]|1[02])[\/\-\.]31)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:16|[2468][048]|[3579][26])00[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1-9]|1[0-2])[\/\-\.](?:0?[1-9]|1\d|2[0-8]))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$</Formula>
<Message>日期格式不正确.</Message>
</date>
上面的公式,是我现在使用的。 可以正确的判断时间。 展开
4个回答
展开全部
我在你原来的正则上作了修改,原功能不变。
在原正则末尾加上以下内容:
|^(?:(?:0{2})?0{2})[\/\-\.](?:0?0)[\/\-\.](?:0?0)$
新正则可以匹配0000-00-00,00-00-00,00-0-0(还可用/或.作为分隔符)。
如果只希望匹配0000-00-00,请把末尾追加的内容换成:
|^(?:0{4})[\/\-\.](?:00)[\/\-\.](?:00)$(仍可用/或.作为分隔符,若想指定以-分隔把[\/\-\.]改成[\-])
在原正则末尾加上以下内容:
|^(?:(?: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天的
)$
|
\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天的
)$
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-01-25
展开全部
程序略为修改下就可以啦,远程帮你解决吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询