dlg*_*ght 22 c# regex asp.net-mvc email-validation asp.net-mvc-4
我有一个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")]
Run Code Online (Sandbox Code Playgroud)
虽然这是验证电子邮件地址,但它会将1@1.1作为有效的电子邮件地址传递.目前我有一个需要符号@符号的验证.符号可以是数字/字母和._-的符号.
我的MVC 4应用程序需要更多标准的电子邮件验证.我怎么做?
Ehs*_*san 75
你需要一个正则表达式.你看这里.如果您使用的是.net Framework4.5,那么您也可以使用它.因为它是在.net Framework 4.5中构建的.例
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
Hab*_*bib 23
扩展Ehsan的答案 ....
如果您使用的是.Net framework 4.5,那么您可以使用一种简单的方法来使用EmailAddressAttribute
Class in code 来验证电子邮件地址.
private static bool IsValidEmailAddress(string emailAddress)
{
return new System.ComponentModel.DataAnnotations
.EmailAddressAttribute()
.IsValid(emailAddress);
}
Run Code Online (Sandbox Code Playgroud)
如果您正在考虑REGEX验证电子邮件地址,请阅读:
我知道如何验证电子邮件地址,直到我阅读RFC由Phil Haack
who*_*oah 13
正则表达式:
[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")]
Run Code Online (Sandbox Code Playgroud)
或者您可以使用:
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)