如何让文本框只接受有效的电子邮件?

How can I make a textbox only accept a valid email?

我想让我的文本框检查输入到文本框中的电子邮件是否有效。

到目前为止我得到了:

if (!this.txtEmail.Text.Contains('@') || !this.txtEmail.Text.Contains('.')) 
{ 
    MessageBox.Show("Please Enter A Valid Email", "Invalid Email", MessageBoxButtons.OK, MessageBoxIcon.Error); 
}

但这只测试它是否有“@”和“.”。在里面。

有没有办法让它检查它是否有 .com 等但只有一个“@”?

.NET 可以为您做到:

  bool IsValidEmail(string eMail)
  {
     bool Result = false;

     try
     {
        var eMailValidator = new System.Net.Mail.MailAddress(eMail);

        Result = (eMail.LastIndexOf(".") > eMail.LastIndexOf("@"));
     }
     catch
     {
        Result = false;
     };

     return Result;
  }

勾选 MailAddress class

    var email = new MailAddress("abc123@example.com");

如果您正在开发网络应用程序,现代浏览器支持 HTML5,因此您可以使用 <input id="txtEmail" type="email" runat="server" /> 而不是 TextBox,它会在浏览器中验证输入是否为电子邮件(但您还应该在您的代码中验证它)。使用 txtEmail.Value 获取文本字符串。