javayyyy-mm-dd正则表达式_关于Java:yyyy-mm-dd的正则
表达式⽇期验证
本问题已经有最佳答案,请猛点这⾥访问。
⽇期格式yyyy-mm-dd的正则表达式是什么?
我想验证来⾃edittext的电⼦邮件,并检查它是否与正则表达式匹配。
也可以在"相关"部分的右侧查看,在很多情况下,都需要使⽤RegEx字符串进⾏⽇期验证。
检查此答案可能有帮助stackoverflow/a/2149698/2675669
这将匹配yyyy-mm-dd以及yyyy-m-d:
^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$
如果您正在寻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])*
您是如何产⽣图形的?
@AllanXu来⾃名为debuggex的⽹站
不完整!正则表达式也应该匹配2016-02-31,但不应该:(
@Djack你在说什么?如果要在其上强制使⽤实际⽇期,则不能使⽤正则表达式。解析⽇期,并确保其实际有效,⽆论您使⽤哪种语⾔。这只是确保其数字以连字符分隔,并且是可⾏的⼀天(少于32天)
@Vinod的正则表达式允许9(没有前⾯的0)匹配为true。这是故意的吗?
@AlanH您可以使⽤^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$。这样,如果缺少前导零,则正则表达式将返回false。
但它也接受2017-02-31
它也匹配2017-0210-31
这不能很好地⼯作,它接受yyyy-m-d,没有严格执⾏yyyy-mm-dd
它匹配" 1984-9-35"的" 1984-9-3"部分。
⼀个简单的是
\d{4}-\d{2}-\d{2}
Debuggex演⽰
但这并不将⽉份限制为1到12,将⽇期限制为1到31。
regex匹配像其他答案⼀样,还有更复杂的检查,⾮常聪明。但是,您必须检查⼀个有效的⽇期,因为不会检查⼀个⽉是否有28、30或31天。
哇。将近4年后的第⼀次投票。这不值得再加上⼀个徽章吗? ;)
是的,它仍然应该被否决。这个答案是完全错误的,因为它不是⽤于⽇期验证的正则表达式。
为什么明明是错误的?正则表达式和规定的限制是正确的。我想念什么?
它不是问题的真正答案,因为它不验证⽇期,仅验证" 4位数字后接破折号,然后是2位数字,然后是破折号再加上2位数字"。就像说2 + 2是3,但您需要添加1。
仅将此注释添加到此答案也是误导性的。从这个意义上讲,其他答案也是不正确的,因为它们也不完整,⽆法对其进⾏验证。但是,如果您愿意,我可以称其为评论或⼤型评论。
它的选票太多,尤其是它的事实。
您可以使⽤此正则表达式获取yyyy-MM-dd格式:
((?? 19 | 20) d d)-(0?[1-9] | 1 [012])-([12] [0-9] | 3 [01] | 0?[1-9 ])
您可以到⽇期验证的⽰例:如何使⽤正则表达式验证⽇期。
他想要yyyy-mm-dd。
我已经更新了答案。
您可以测试此表达式:
^\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⽇期
确保⽇期在该⽉的有效范围内-不验证a年2⽉29⽇,只有2⽉可以有29天
匹配项(经过测试):0001-12-31 | 9999 09 30 | 2002/03/03
为什么这个答案被否决?对我来说效果很好
您可以编辑答案并将代码放⼊代码标签中吗?
编辑成标签:)
这同时接受2000-02-29和2001-02-29作为匹配项
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论