代码之家  ›  专栏  ›  技术社区  ›  user162558

windows窗体上的电子邮件验证

c#
  •  1
  • user162558  · 技术社区  · 16 年前

    我正在使用windows窗体。

    我只想验证我的文本框(或屏蔽文本框)的电子邮件ID。

    有人能告诉我这个主意吗?

    6 回复  |  直到 9 年前
        1
  •  3
  •   SteckCorporation    16 年前

    尝试使用正则表达式 @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

        2
  •  3
  •   Frank Bollack    16 年前

    您可以使用 System.Net.Mail.MailAdress 表示邮件地址的类。

    尝试用字符串初始化一个实例并捕获异常,如果验证失败,将引发该异常。像这样的:

    try
    {
       new System.Net.Mail.MailAddress(this.textBox.Text);
    }
    catch(ArgumentException)
    {
       //textBox is empty
    }
    catch(FormatException)
    {
       //textBox contains no valid mail address
    }
    
        3
  •  2
  •   maxy    16 年前

    尝试正则表达式

    @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
    

    或者在代码中检查您的电子邮件地址

    string email=textbox1.text;
    if(email.lastindexof("@")>-1)
    {
    //valid
    }
    else
    {
    
    }
    
        4
  •  1
  •   sudeep    13 年前

    string email=textbox1.text;

    System.Text.RegularExpressions.Regex expr= new System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]{2,28}[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");

    `if (expr.IsMatch(email))
                MessageBox.Show("valid");
    
            else MessageBox.Show("invalid");`
    
        5
  •  0
  •   Hulk1991 moinudin    12 年前

    试试这个:

    private void emailTxt_Validating(object sender, CancelEventArgs e)
    
    {
    
    System.Text.RegularExpressions.Regex rEmail = new    System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");
    
            if (emailTxt.Text.Length > 0 && emailTxt.Text.Trim().Length != 0)
            {
                if (!rEmail.IsMatch(emailTxt.Text.Trim()))
                {
                    MessageBox.Show("check email id");
                    emailTxt.SelectAll();
                    e.Cancel = true;
                }
            }
        }
    
        6
  •  0
  •   Kervin Guzman    9 年前

    我建议你用这种方法,对我很有效。

    /* Add this reference */
    
    using System.Text.RegularExpressions;
    
    ---------------------------
    
    if (!string.IsNullOrWhiteSpace(txtEmail.Text))
    {
        Regex reg = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
        if (!reg.IsMatch(txtEmail.Text))
        {
            Mensaje += "* El email no es válido. \n\n";
            isValid = false;
        }
    }