我想知道是否有人可以指向我验证的正则代码:#### / ## / ##
示例:1990/05/25
第二个号码0
只能是0
或1
,而号码2
只能是0
,1
,{{ 1}}或2
。除此之外,允许此集合中的所有其他数字(0-9)。
代码应验证总共只有9个或10个字符,包括斜杠。
答案 0 :(得分:3)
如果您只想验证此格式,可以使用像...这样的正则表达式。
^\d{1,4}\/[01]?\d\/[0-3]\d$
我在某些日期here测试了一下。
这将匹配:
1990/01/01
2012/13/34
2013/1/39
9999/0/00
但拒绝:
23121/32/44
12/05/013
013/000/00
如果您想拒绝2013/02/29
之类的无效日期,可以查看this thread。
答案 1 :(得分:2)
试试这个(编辑Jerry之后)
[0-2][0-9]{3,3}/[0|1][0-9]/[0-3][0-9]
用{a,b}表示法来改变一般数字的长度,它意味着在前面的表达式的a和b之间。在您的问题中不清楚您希望数字灵活性在哪里。
E.g。发出2013/5/29,使用
[0-2][0-9]{3,3}/[0|1]{0,1}[0-9]/[0-3][0-9]
答案 2 :(得分:1)
对于所有正则表达式我发现这个网站是一个非常宝贵的资源。 http://www.regular-expressions.info/reference.html
具体来说,此页面可以为您提供所需内容,并包含有关如何通过正则表达式验证日期输入格式(非值)的完整说明。
http://www.regular-expressions.info/dates.html
^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$
会匹配
yyyy-mm-dd