使用正则表达式MVC3进行数据验证

时间:2012-06-08 13:12:05

标签: asp.net-mvc-3

我正在使用正则表达式过滤器来验证MVC3中表单上的日期输入

    [RegularExpression(@"[0-3][0-9]\.[01][0-9]\.[0-2][0-9]{3}( [0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?",ErrorMessage="Incorrect Format")] 
    public DateTime CreationDate { get; set; }

非常奇怪的情况:值01.01.2012 00:00不满足正则表达式,但在输入值01.01.2012 10:00时,modelstate有效。我已使用此http://regexpal.com/检查了我的正则表达式,并且值很好。

有人有任何建议,为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

噢......我自己发现了这个问题。我不知道如何,但在提交表单后,值01.01.2012 00:00已转换为01.01.2012 0:00,因此它不满足正则表达式。好吧,正则表达式似乎是这样的:

[RegularExpression(@"[0-3][0-9]\.[01][0-9]\.[0-2][0-9]{3}( ([0-2])?[0-9]:[0-5][0-9](:[0-5][0-9])?)?",ErrorMessage="Incorrect Format")] 

也许对某人有帮助。