c#-如何确保用户在文本框中输入了电子邮件地址?

如何确保我的Web表单应用程序的用户输入了电子邮件地址?我已经看到了使用正则表达式和EmailAddress()的示例,但是如何在下面的if else语句中实现一个或另一个呢?

if (emailTextBox.Text == "" || emailTextBox.Text.Length > 100)
{
    emailErrorString = "Email: Enter email address.  No more than 100 characters.\n\n";
    emailString = null;
    errorMessage = true;
}
else
{
    emailString = emailTextBox.Text;
    emailErrorString = null;
}

我尝试了以下代码,即使输入了无效的电子邮件地址“ jj @ jj,也返回了true.我没有输入” .com,.net或类似的内容:

 if (emailTextBox.Text == "" || emailTextBox.Text.Length > 100 ||                                          
      IsValid(emailTextBox.Text).Equals(false)) 
 {
     emailErrorString = "Email: Enter a valid email address. No more than 100
           characters.\n\n"; emailString = null; errorMessage = true; 
 } 
 else 
 { 
      emailString = emailTextBox.Text; emailErrorString = null; 
 }

解决方法:

您可以使用MailAddress类,如下所示:

public bool IsValid(string emailAddress)
{
    try
    {
        MailAddress m = new MailAddress(emailaddress);
        return true;
    }
    catch (FormatException)
    {
        return false;
    }
}

或者,
您可以使用RegEx(您应该能够找到一种适合验证电子邮件地址的方式).
该链接给出了可用字符/模式的基本概念:Regexlib

上一篇:进程状态


下一篇:[SDOI2008]Sue的小球