【发布时间】:2016-03-07 15:46:23
【问题描述】:
我正在尝试为我的 mvc 应用程序创建简单的正则表达式验证。我试过了:
[Required]
[RegularExpression("(\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d)")]
它不工作。我想强制客户以 01/01/2015 格式输入日期
【问题讨论】:
标签: c# regex asp.net-mvc data-annotations
我正在尝试为我的 mvc 应用程序创建简单的正则表达式验证。我试过了:
[Required]
[RegularExpression("(\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d)")]
它不工作。我想强制客户以 01/01/2015 格式输入日期
【问题讨论】:
标签: c# regex asp.net-mvc data-annotations
为什么在这种情况下需要正则表达式?使用DisplayFormat 和DataType:
[Required]
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
我的意思是用正则表达式验证日期是错误的。没有简单的方法来验证日期,例如 31/02/2015 或 31/04/2015,这是无效的日期。
【讨论】:
可能是因为转义了这么多字符造成的混乱。
在这里,我通过添加 @ 来转义整个字符串,并通过使用量词指定要捕获的每个数字类的多少个字符来压缩正则表达式:
[RegularExpression(@"(\d{2}/\d{2}/\d{4})")]
但是,由于您使用它来验证日期条目,因此您可能需要考虑将 DateTime 验证器用作 teo van kot has mentioned,因为此正则表达式不会强制执行有效的日期值。
【讨论】: