【问题标题】:How can I make a textbox only accept a valid email? [duplicate]如何让文本框只接受有效的电子邮件? [复制]
【发布时间】:2015-07-01 11:15:05
【问题描述】:

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

到目前为止,我得到了:

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

但这仅测试它是否具有'@'和'.'在里面。

有没有办法让它检查它是否有 .com 等并且只有一个'@'?

【问题讨论】:

  • 验证电子邮件地址很困难。最简单的方法是做你已经做过的事情:寻找@.。如果存在,请向该地址发送电子邮件并让用户确认其真实性。
  • 查看regex
  • C# 空间中的大多数不同 UI(和 Web)框架都有验证器,通常还有一个专门用于验证电子邮件地址。

标签: c# winforms email visual-studio-2013 textbox


【解决方案1】:

.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;
  }

【讨论】:

  • 效果很好,谢谢!
  • 如果我使用“test@test”,则使用此方法作为有效的电子邮件地址传递。
  • 虽然它很有用,但它不会检查正确的电子邮件地址格式,就像@DDuffy 所说的那样,将“test@test”结果作为“有效”电子邮件传递。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    检查MailAddress

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2013-03-06
      • 2016-03-15
      • 2013-04-18
      • 2011-12-22
      • 2019-05-19
      相关资源
      最近更新 更多