如何验证电子邮件地址输入?

0 regex asp.net validation

我有一个ASP.NET Web表单,我可以在其中输入电子邮件地址.

我需要在以下模式中使用可接受的电子邮件地址验证该字段:

xxx@home.co.uk
xxx@home.com
xxx@homegroup.com
Run Code Online (Sandbox Code Playgroud)

Pat*_*ald 7

用于验证这一点的正则表达式将是:

^[A-Z0-9._%+-]+((@home\.co\.uk)|(@home\.com)|(@homegroup\.com))$
Run Code Online (Sandbox Code Playgroud)

C#样本:

string emailAddress = "jim@home.com";
string pattern = @"^[A-Z0-9._%+-]+((@home\.co\.uk)|(@home\.com)|(@homegroup\.com))$";
if (Regex.IsMatch(emailAddress, pattern, RegexOptions.IgnoreCase))
{
    // email address is valid
}
Run Code Online (Sandbox Code Playgroud)

VB示例:

Dim emailAddress As String = "jim@home.com"
Dim pattern As String = "^[A-Z0-9._%+-]+((@home\.co\.uk)|(@home\.com)|(@homegroup\.com))$";
If Regex.IsMatch(emailAddress, pattern, RegexOptions.IgnoreCase) Then
    ' email address is valid
End If
Run Code Online (Sandbox Code Playgroud)


Lee*_*Lee 6

以下是我将如何使用System.Net.Mail.MailAddress以下方法进行验证:

bool valid = true;
try
{
    MailAddress address = new MailAddress(email);
}
catch(FormatException)
{
    valid = false;
}

if(!(email.EndsWith("@home.co.uk") || 
     email.EndsWith("@home.com") || 
     email.EndsWith("@homegroup.com")))
{
    valid = false;
}

return valid;
Run Code Online (Sandbox Code Playgroud)

MailAddress首先验证它是有效的电子邮件地址.然后其余的验证它以您需要的目的地结束.对我来说,这比每个看起来笨拙的正则表达式更容易理解.它可能不像正则表达式那样高效,但它听起来并不像你在循环中验证它们中的一堆......在网页上一次只有一个