2012-02-21 73 views
-1

我有这种格式的字符串MM/YY,MM可以是01 02 03 04 05 06 07 08 09 10 11 12而YY可以是10到99什么是正则表达式对应。与正则表达式匹配的字符串

我想^\d\d/\d\d$

编辑:
从波纹管 我不推荐使用正则表达式来进行日期时间的严格验证的评论。 但在我的情况下,可以做一个简单的比赛。

编辑: 我改了称呼,因为人们有的人能疯子

+3

我确定有人会以书面形式回答您的问题,但使用正则表达式验证DateTimes是该作业的错误工具。 – Widor 2012-02-21 12:31:00

+0

你想使用哪种正则表达式?基本?扩展? PCRE? – ghoti 2012-02-21 12:32:31

+3

就像你不想要几个月> 12,你也不想匹配大于特定月份的允许值的日子,并且你需要考虑闰年。正如维多尔所说,正则表达式是错误的工具。 – ghoti 2012-02-21 12:33:45

回答

3

有一试:

^(?:0[1-9]|1[012])/\d\d$ 

,或者如果第一0是可选的:

^(?:0?[1-9]|1[012])/\d\d$ 
+0

谢谢我的第一个0不是可选的,但是当你给出两个有效的答案时没关系 – 2012-02-21 12:55:04

+0

@ ChristopheDebove:不客气。 – Toto 2012-02-21 12:56:55

0

你可以尝试这样的事情^(0|1)\d{1}/\d{2}$如果您的月可能有前导零。否则^1?\d{1}\/d{2}$应该做的伎俩。

0

写所有的可能性(这不是那么长):

^(0\d|10|11|12)/\d\d$ 
+0

感谢您的参与,但不太好 – 2012-02-21 13:03:22

2

这将仅允许1至12(或01至12):^(0?[1-9]|1[012])$