我有一个MVC 4 Web应用程序,我需要输入并验证一些电子邮件地址,而不向用户的电子邮件地址发送电子邮件.
目前我正在使用此模式的基本正则表达式电子邮件验证:
[RegularExpression(@"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", ErrorMessage = "Please enter correct email address")]
虽然这是验证电子邮件地址,但它会将1@1.1作为有效的电子邮件地址传递.目前我有一个需要符号@符号的验证.符号可以是数字/字母和._-的符号.
我的MVC 4应用程序需要更多标准的电子邮件验证.我怎么做?
扩展Ehsan的答案 ....
如果您使用的是.Net framework 4.5,那么您可以使用一种简单的方法来使用EmailAddressAttribute
Class in code 来验证电子邮件地址.
private static bool IsValidEmailAddress(string emailAddress) { return new System.ComponentModel.DataAnnotations .EmailAddressAttribute() .IsValid(emailAddress); }
如果您正在考虑REGEX验证电子邮件地址,请阅读:
我知道如何验证电子邮件地址,直到我阅读RFC由Phil Haack
正则表达式:
[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")]
或者您可以使用:
[DataType(DataType.EmailAddress)] public string Email { get; set; }
你需要一个正则表达式.你看这里.如果您使用的是.net Framework4.5,那么您也可以使用它.因为它是在.net Framework 4.5中构建的.例
[EmailAddress(ErrorMessage = "Invalid Email Address")] public string Email { get; set; }