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

时间:2015-12-03 06:13:33

标签: c# regex asp.net-mvc data-annotations

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

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

它不起作用。我想强制客户以01/01/2015格式输入日期

2 个答案:

答案 0 :(得分:5)

为什么你需要这个案例的正则表达式?使用DisplayFormatDataType

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

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

答案 1 :(得分:2)

这可能是由于逃避这么多角色造成的混乱。

这里我通过前置@来转义整个字符串,并使用量词来浓缩正则表达式,以指定要捕获的每个数字类的字符数:

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

但是,由于您使用它来验证日期条目,因此您可能需要考虑将DateTime验证程序用作teo van kot has mentioned,因为此正则表达式不会强制使用有效的日期值。