首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >yyyy-mm-dd的正则表达式日期验证

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

Stack Overflow用户
提问于 2014-02-27 15:22:36
回答 3查看 164.3K关注 0票数 59

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

我想验证来自edittext的电子邮件,并检查它是否与regex匹配。

EN

回答 3

Stack Overflow用户

发布于 2014-02-27 15:30:03

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

代码语言:javascript
复制
^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$

如果您正在寻找与yyyy-mm-dd完全匹配的内容,那么可以尝试以下内容

代码语言:javascript
复制
^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$

或者,如果您需要在类似于The date is 2017-11-30的字符串中查找日期,请使用此命令

代码语言:javascript
复制
\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])*

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

票数 145
EN

Stack Overflow用户

发布于 2014-02-27 15:26:13

一个简单的例子是

代码语言:javascript
复制
\d{4}-\d{2}-\d{2}

Debuggex Demo

但这并不限制月份为1-12,天数为1- 31。

还有更复杂的检查,就像其他答案一样,顺便说一句,非常聪明的检查。但是,您必须检查有效的日期,因为没有检查一个月是28天、30天还是31天。

票数 49
EN

Stack Overflow用户

发布于 2014-02-27 16:01:48

你可以测试这个表达式:

代码语言:javascript
复制
^\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]))$

描述:

验证yyyy- mm -dd、yyyy mm dd或yyyy/mm/dd日期

确保日期在月份的有效范围内-不验证闰年的2月29日,只验证2月29日可以有29天

匹配(检测):0001-12-31 | 9999 09 30 | 2002/03/03

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22061723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档