regex – 正则表达式以匹配有效日期

前端之家收集整理的这篇文章主要介绍了regex – 正则表达式以匹配有效日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图写一个验证日期的正则表达式。正则表达式需要匹配以下内容

> M / D / YYYY
> MM / DD / YYYY
>单位数月份可以从前导零开始(例如:03/12/2008)
>单位数字可以从前导零开始(例如:3/02/2008)
>不能包括2月30日或2月31日(例如:2/31/2008)

到目前为止我有

^(([1-9]|1[012])[-/.]([1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d)|((1[012]|0[1-9])(3[01]|2\d|1\d|0[1-9])(19|20)\d\d)|((1[012]|0[1-9])[-/.](3[01]|2\d|1\d|0[1-9])[-/.](19|20)\d\d)$

这正确匹配除外它仍包括2/30/2008& 2/31/2008。

有人有更好的建议吗?

编辑:我在RegExLib上找到了the answer

^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$

它匹配MM / DD / YYYY格式后的所有有效月份。

感谢大家的帮助。

这不是正确表达式的适当使用。你最好不要使用
[0-9]{2}/[0-9]{2}/[0-9]{4}

然后使用更高级语言检查范围。

猜你在找的正则表达式相关文章