我有以下代码:
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应用程序。所以我认为这里的问题是我在模型类中如何声明它。
答案 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}$
现在我将专注于制作最好的电子邮件正则表达式。谢谢!