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

问题描述 投票:2回答:2

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

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

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

c# regex asp.net-mvc data-annotations
2个回答
5
投票

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

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

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


2
投票

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

在这里,我通过预先添加@来逃避整个字符串,并通过使用量词来浓缩正则表达式来指定要捕获的每个数字类的字符数:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.