最简单的正则表达式匹配日期字符串

时间:2013-05-26 15:47:17

标签: regex

匹配以下日期格式的最简单的正则表达式是什么:

mm-dd-yy

即。 13年1月1日

5 个答案:

答案 0 :(得分:2)

我总是使用\d{2}-\d{2}-\d{2},但请注意,这允许“日期”,例如13-13-13

编写一个只与有效日期匹配的完整正则表达式非常复杂,几乎不值得付出努力。

另一个注意事项是这种格式非常含糊不清。如果可能,请使用yyyy-mm-dddd-mm-yyyy

答案 1 :(得分:2)

这取决于你是否只想匹配数字:

\d\d-\d\d-\d\d

但是如果你想确定任何日期是有效的,那么它应该是不精确的或不可能的(不能处理2月)。

这是一个更好的正则表达式,但仍然不完美:

(1[0-2]|0\d)-([0-2]\d|3[0-1])-\d\d

答案 2 :(得分:0)

这很简单:

 /^\d\d-\d\d-\d\d$/

但是你应该在这个简单的格式检查后使用日期库检查日期是否有效:没有合理的正则表达式会检查你是不是2月29日的非双年份。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

只是为了好玩,这里只匹配有效日期。由于您使用的是两位数年份,因此假定00为2000(这是闰年);如果您正在寻找1900或2100,则需要进行修改。

/^((0[13-9]|1[012])-(0[1-9]|[12]\d|30)|([13578]|1[02])-31)-\d\d|02-(0[1-9]|[12][0-8])-\d\d|02-29-([02468][048]|[13579][26])$/