正则表达式包括日期

时间:2014-03-26 14:11:25

标签: regex date

我想帮助增强一个非常简单的正则表达式。

条件是:字符串值;固定长度= 10;可以只包含字符[0-9]。

为此,我有:^ \ d {10} $

我想强化这一点以强制执行以下操作:

前6个字符必须是有效日期(格式为ddmmyy)

帮助表示感谢。 谢谢 保罗

2 个答案:

答案 0 :(得分:1)

无法使用纯RegEx真正准确地验证日期。但是,如果您只想要一般约束,例如天数不能超过31且月份不能超过12,那么以下内容应该可以正常工作:

^(?:0[1-9]|[12][0-9]|3[01])(?:0[1-9]|1[0-2])[0-9]{2}\d{4}$

结尾\d{4}是为了确保其余4个字符也符合您的要求。

答案 1 :(得分:0)

如果您只是尝试使用正则表达式执行此操作,我认为您必须将其分解为:

对于DDMM部分:

  • (0 + 1-9 | 1-2 + 0-9 | 3 + 0-1)+ 01 | 03 | 05 | 07 | 08 | 10 | 12或
  • (0 + 1-9 | 1-2 + 0-9 | 30)+ 04 | 06 | 09 | 11或
  • (0 + 1-9 | 1-2 + 0-9)+ 02

为YY部分:

  • 0-9 + 0-9

然后将它们组合成一个可笑的长正则表达式模式。

希望这是有道理的。请注意,这并不完全有效,因为它将允许无效日期,如2月29日(非闰年2月29日)。

就像@tenub所说,你不能单独使用正则表达式来准确验证日期。