Windows窗体上的电子邮件验证

时间:2009-10-13 06:47:59

标签: c#

我正在使用Windows窗体。

我只是想验证我的文本框(或掩码文本框)是否有电子邮件ID。

任何人都可以告诉我这个想法吗?

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

您可以使用代表邮件地址的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
}

答案 2 :(得分:2)

尝试正则表达式

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

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

string email=textbox1.text;
if(email.lastindexof("@")>-1)
{
//valid
}
else
{

}

答案 3 :(得分:1)

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");`

答案 4 :(得分:0)

试试这个:

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

答案 5 :(得分:0)

我建议您使用这种方式,它对我来说效果很好。

/* 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;
    }
}