Yyyy-mm-dd 的正则表达式日期验证

日期格式 yyyy-mm-dd 的正则表达式是什么?

我想验证电子邮件从编辑文本,并检查它是否匹配正则表达式。

213417 次浏览

您可以使用这个正则表达式获得 天哪格式:

((?:19|20)\\d\\d)-(0?[1-9]|1[012])-([12][0-9]|3[01]|0?[1-9])

您可以找到日期验证的示例: 如何使用正则表达式验证日期。

一个简单的问题就是

\d{4}-\d{2}-\d{2}

Regular expression visualization

调试演示

但这并不限制每月1-12日及每日1-31日。

还有更复杂的检查,就像其他的答案一样,顺便说一句,很聪明的。尽管如此,你必须检查一个有效的日期,因为没有检查是否一个月有28天,30天或31天。

这将匹配 yyyy-mm-ddyyyy-m-d:

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

Regular expression visualization

如果你正在寻找与 yyyy-mm-dd完全匹配的,那么试试这个

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

如果需要在字符串(如 The date is 2017-11-30)中查找日期,可以使用这个函数

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

Https://regex101.com/r/acvpss/1

你可以测试这个表达式:

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

描述:
验证 yyy-mm-dd、 yyyy mm dd 或 yyy/mm/dd 日期

确保一天是在有效范围内的一个月-不验证2月29日在闰年,只有那个2月。可以有29天

匹配(测试) : 0001-12-31 | 9990930 | 2002/03/03