gpt4 book ai didi

c# - 日期的正则表达式不起作用; MVC3 数据注解

转载 作者:行者123 更新时间:2023-11-30 15:06:09 25 4
gpt4 key购买 nike

我在 linq sql 类的接口(interface)中使用 DataAnnotations。没关系。

我在使用日期时间字段时遇到问题

我的代码如下:

 [DataType(DataType.Date)]
[RegularExpression(@"^([1-9]|0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$", ErrorMessage = "regexFail")]
DateTime? DateofBirth { get; set; }

现在数据类型表达式工作正常,它引入了日期而不是日期时间。问题在于字段的验证。我的正则表达式与日期不匹配,即使我将它放入引擎中也确实如此。例如,我在字段中输入“10/10/2010”,但出现错误“regexFail”。

我很确定我的表情很好,所以我不确定哪里不对。

提前致谢。

最佳答案

我认为正在发生的事情是 DateTime 值被转换为字符串,然后与模式匹配。如果是这种情况,并且正在使用 ToString,则默认时间 12:00:00 AM 将包含在匹配的字符串中。

我尝试了以下代码,IsValid 返回了 true:

string pattern = @"^([1-9]|0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d\s12:00:00\sAM$";

RegularExpressionAttribute attribute = new RegularExpressionAttribute(pattern) { ErrorMessage = "regexFail" };
DateTime dt = new DateTime(2010, 10, 10);

bool isValid = attribute.IsValid(dt);

关于c# - 日期的正则表达式不起作用; MVC3 数据注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com