简单的正则表达式日期验证

simply regex date validation

我正在尝试为我的 mvc 应用程序创建简单的正则表达式验证。我试过了:

[Required]
[RegularExpression("(\d\d\/\d\d\/\d\d\d\d)")]

它不起作用。我想强制客户以 01/01/2015

格式输入日期

为什么在这种情况下需要正则表达式?使用 DisplayFormatDataType:

[Required]
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]

我的意思是用正则表达式验证日期是错误的。没有简单的方法来验证 31/02/201531/04/2015 这样的日期,这不是有效日期。

可能是转义字符太多造成的混乱。

在这里,我通过在前面加上 @ 转义了整个字符串,并通过使用量词指定要捕获的每个数字 class 的字符数来压缩正则表达式:

[RegularExpression(@"(\d{2}/\d{2}/\d{4})")]

但是,由于您使用它来验证日期条目,因此您可能需要考虑使用 DateTime 验证器作为 ,因为此正则表达式不强制执行有效的日期值。