1

我想知道是否有人可以将我指向验证此的正则表达式代码:####/##/##

例子:1990/05/25

第二个数字0只能是0or1并且数字2并且只能是0, 1, 2, or 3。除此之外,允许该集合中的所有其他数字 (0-9)。

代码应该验证总共只有 9 或 10 个字符,包括斜线。

4

3 回答 3

3

如果您只想验证这种格式,您可以使用正则表达式...

^\d{1,4}\/[01]?\d\/[0-3]\d$

我在这里的某些日期对其进行了一些测试。

这将匹配:

1990/01/01
2012/13/34
2013/1/39
9999/0/00

但拒绝:

23121/32/44
12/05/013
013/000/00

如果您也想拒绝无效日期,例如2013/02/29,您可以查看此线程

于 2013-05-29T13:18:19.330 回答
2

试试这个(编辑跟随杰瑞)

[0-2][0-9]{3,3}/[0|1][0-9]/[0-3][0-9]

用 {a,b} 符号来改变一般数字的长度,它意味着在前面的表达式的 a 和 b 之间。您的问题不清楚您希望数字灵活性在哪里。

例如发射 2013/5/29,使用

 [0-2][0-9]{3,3}/[0|1]{0,1}[0-9]/[0-3][0-9]
于 2013-05-29T13:18:00.160 回答
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
于 2013-05-29T13:22:55.020 回答