正则表达式验证不适用于模型

时间:2013-07-25 07:13:03

标签: c# regex asp.net-mvc-3

我有以下代码:

public class Register
{
[RegularExpression(@"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "eMail is not in proper format")]
[Required(ErrorMessageResourceName="Name Required"), ErrorMessageResourceType = typeof(ErrorMessages))]
public string Email{ get; set; }
}

我尝试过的电子邮件:asd@asd.com有效,但未通过验证。

必需可行,但正则表达式失败。即使我输入了有效的电子邮件地址,仍然会说电子邮件的格式不正确。

我在这里错过了什么?提前谢谢!

修改

这个正则表达式验证器正在使用Resources.resx处理我的其他mvc应用程序。所以我认为这里的问题是我在模型类中如何声明它。

2 个答案:

答案 0 :(得分:0)

        Regex regx = new Regex(@"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"
        + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)"
        + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$");

/ *公开声明并验证您的邮件文本框* /

答案 1 :(得分:0)

这已经解决了。我不小心把错误的正则表达式放在我的代码上:

"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$

而不是:

 @"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$

现在我将专注于制作最好的电子邮件正则表达式。谢谢!