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

Posted

技术标签:

【中文标题】简单的正则表达式日期验证【英文标题】:simply regex date validation 【发布时间】:2016-03-07 15:46:23 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

但在这种情况下,我无法添加超过 12 天的日期 @UddyanSemwal 你在本地化的某个地方遇到了问题,这有点棘手,可能你应该在客户端做对,我相信你应该问另一个问题,所有 add 都可以重现这个问题并有人会帮助你。 它已经解决了,因为 db 需要 yyyy-MM-dd 格式我已经改变了它的工作方式 man @teovankot【参考方案2】:

可能是因为转义了这么多字符造成的混乱。

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

[RegularExpression(@"(\d2/\d2/\d4)")]

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

【讨论】:

感谢您的帮助,我想我在其他地方犯了错误。我知道我的 reg ex 的局限性,但它应该可以工作。

以上是关于简单的正则表达式日期验证的主要内容,如果未能解决你的问题,请参考以下文章

Java里面效验日期的正则表达式

java中怎么验证日期格式,要各种日期格式都能验证,代码比较简单的。

正则表达式波斯日期验证

用于验证日期的正则表达式 [重复]

正则表达式验证 UTC 日期时间格式

正则表达式日期验证格式