正则表达式验证日期格式dd / mm / yyyy

我需要dd/mm/yyyy使用正则表达式验证格式的日期字符串。

此正则表达式验证dd/mm/yyyy,但无效日期无效,例如31/02/4500

^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$

什么是在dd/mm/yyyyleap年支持下验证格式的有效正则表达式?

回答:

您粘贴的正则表达式无法正确验证leap年,但同一篇文章中有。我修改了它采取dd/mm/yyyydd-mm-yyyydd.mm.yyyy

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

我在Arun在他的答案 以及此处提供的链接中对其进行了一些测试,它似乎有效。

编辑2019年2月14日:我删除了正则表达式中的逗号,该逗号允许日期如下 29-0,-11

以上是 正则表达式验证日期格式dd / mm / yyyy 的全部内容, 来源链接: utcz.com/qa/409283.html

回到顶部