C#电子邮件正则表达没有空格或!允许的角色

时间:2014-04-17 07:16:57

标签: c# regex

所以我有这段代码,我需要帮助的是:

我需要它不允许空格(例如user 123@hotmail.com =无效)

我需要它允许除!字符以外的所有字符。

我需要域名(在.之后),如果长度超过2个字符,则必须通过我在这里提供的文件进行验证。

国家/地区代码是。 AERO,BIZ,COM,COOP,EDU,GOV,INFO,INT,MIL,MUSEUM,NAME,NET,ORG,PRO

当前代码。

private void validateBtn_Click(object sender, EventArgs e)
{
    Regex email = new Regex(@"[a-zA-Z0-9]{1,20}@[a-zA-Z0-9]{1,20}\.[a-zA-Z]{2,3}$");
    if (!email.IsMatch(emailTxt.Text)) 
    {
        validLbl.Text = "Email invalid";
    }
    else
    {
        validLbl.Text = "Email Valid";
    }
}

任何帮助都会很棒! :D我真的找不到任何资源来帮助我。

2 个答案:

答案 0 :(得分:0)

这是一个完整而详尽的正则表达式,用于检查电子邮件字段的有效性。我很确定这足以满足您与电子邮件地址相关的所有验证。

([a-z0-9][-a-z0-9_\+\.]*[a-z0-9])@([a-z0-9][-a-z0-9\.]*[a-z0-9]\.(aero|AERO|biz|BIZ|com|COM|coop|COOP|edu|EDU|gov|GOV|info|INFO|int|INT|mil|MIL|museum|MUSUEM|name|NAME|net|NET|org|ORG|pro|PRO)|([0-9]{1,3}\.{3}[0-9]{1,3}))

如果您需要验证的域地址有任何更改,则可以相应地修改正则表达式。在这种情况下,您的代码应该是这样的:

private void validateBtn_Click(object sender, EventArgs e)
{
    Regex validEmailExp = new Regex(@"([a-z0-9][-a-z0-9_\+\.]*[a-z0-9])@([a-z0-9][-a-z0-9\.]*[a-z0-9]\.(aero|AERO|biz|BIZ|com|COM|coop|COOP|edu|EDU|gov|GOV|info|INFO|int|INT|mil|MIL|museum|MUSUEM|name|NAME|net|NET|org|ORG|pro|PRO)|([0-9]{1,3}\.{3}[0-9]{1,3}))");
    if (emailExp.IsMatch(emailTxt.Text.Trim()))
    {
        validLbl.Text = emailTxt.Text + " is valid";
    }
    else
    {
        validLbl.Text = emailTxt.Text + " is invalid";
    }
}

希望这有帮助!!!

答案 1 :(得分:0)

您无法使用正则表达式完全验证电子邮件。充其量你可以接近。有关更完整的讨论,请参阅this thread