正则表达式特定日期格式

时间:2013-05-29 13:12:48

标签: c# asp.net regex date format

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

示例:1990/05/25

第二个号码0只能是01,而号码2只能是01,{{ 1}}或2。除此之外,允许此集合中的所有其他数字(0-9)。

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

3 个答案:

答案 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