【发布时间】:2012-07-15 23:57:46
【问题描述】:
我是 Regex 的新手,我想知道是否有人可以提供帮助。我什至不确定 Regex 是否是我想做的最佳选择。
我正在查看一个字符串数组。我想在数组中找到与各种日期格式匹配的所有项目。以下是我尝试匹配的示例格式。
2012 年 4 月 1 日 - 当天没有前导零的短月份名称 - 匹配
2012 年 4 月 1 日 - 日期前导零的短月份名称 - 匹配
2012 年 4 月 1 日 - 当天没有前导零的完整文本月份名称 - 匹配
2012 年 4 月 1 日 - 日期前导零的完整文本月份名称 - 匹配
2012 年 4 月 1 日 - 月份和日期没有前导零 - 匹配
04/01/2012 - 月份和日期的前导零 - 匹配
02/29/2012 - 如果年份是闰年,则允许 2/29 - 匹配
2001 年 13 月 12 日 - 1-12 月之外的月份 - 不匹配
2012 年 2 月 30 日 - 一个月中有太多天 - 不匹配
02/29/2011 - 如果不是闰年 - 不匹配
我开发的当前正则表达式。
\b(?:(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May?|Jun(?:e)?|Jul(?:y) |Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))|(0?[1-9]|1[012])[- /.,](0?[1-9]|1[0-9]|2[0-9]|3[01])
我可以开发正则表达式来对每种格式的各个部分进行解密,但是将它们链接在一起是这样我只能得到一个匹配项。目前它匹配两次(月,月+日)。我只希望它在整个匹配时匹配。
谢谢
有限
【问题讨论】:
-
试试
DateJS -
使用
RegEx你可能会匹配一些日期字符串,但你永远不能使用pure regex pattern来验证日期字段。您可能会赢得几场战斗而不是一场战争!假设leap year issue。
标签: regex validation date