使用javascript / Jquery进行电子邮件验证

时间:2011-06-01 12:25:09

标签: javascript jquery email-validation

大家好 我遇到了电子邮件验证问题。一组测试人员测试我的网页,他们因电子邮件验证而拒绝我的开发。

他们输入的邮件如abc@gmail.123.com,abc@gmail.com.com,abc@gmail.123.com 等...

我没有得到这种验证这种电子邮件的正则表达式。 特别是.com,.net,.ca,.123

是否有可以验证此类电子邮件的正则表达式或javascript验证?

对此有任何想法

7 个答案:

答案 0 :(得分:1)

我建议你对此做一些研究。电子邮件地址不能,重复 CAN NOT 可以通过正则表达式轻松验证。

如果您只想验证可行的地址部分user@host.domain。但验证“Foo Bar”< foo@bar.baz>不容易核实。

我建议查看关于SMTP的RFC,特别是关于寻址可能会创建一个能够做你想做的正则表达式的RFC。

答案 1 :(得分:0)

以下示例javascript函数应查找以字母或数字开头的电子邮件地址。

function emailValidate(emailValue){
    var pattern=/^([a-zA-Z]+[0-9]*)\.?([a-zA-Z]+)?$/;
    if(pattern.test(emailValue))
        return true;
    else
        return false;
}

答案 2 :(得分:0)

var email = 'abc@gmail.123.com'
if (email.match('^[A-z0-9._%-]+@[A-z0-9.-]+\.[A-z]{2,4}$') == email) {
    alert('email is valid!')
} else {
    alert('you have an error in your email')
}

答案 3 :(得分:0)

first result上的google提供了一些很好的信息:

该页面是正则表达式的一个很好的起点,并描述了匹配电子邮件地址的一些权衡。正如其他人所说,没有标准的方法。使用正则表达式验证电子邮件地址并不像看起来那么容易。

您可以使用以下正则表达式作为起点:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

请查看the article以获取更详细的说明。

答案 4 :(得分:0)

很多答案,但这是我的2便士:没有一个正则表达式会以零误报率正确验证所有电子邮件。是的,有RFC规范,是的,有一个(非常长和令人讨厌的)正则表达式匹配它,但这仍然不涵盖一切:一些电子邮件系统支持不符合这一点的电子邮件地址。

这里建议的任何更短/更简单的正则表达式将适用于95-99%的电子邮件地址,但不是一切。即使电子邮件地址的有效格式,您仍然不知道它实际上是一个真实的地址。即使向该地址发送测试消息也无济于事:许多电子邮件服务器将默默地丢弃传入的电子邮件以查找不存在的地址。所以确实没有必要检查格式有效性:你仍然不知道地址是否良好。

所以我推荐的唯一电子邮件验证是检查“@”字符必须在每个地址中。非常简单,将拒绝总垃圾,例如机器人垃圾,并将确保没有合法地址被拒绝。

Tl; dr:检查格式有效性是没有意义的,因为正则表达式不足并且您无论如何都不知道有效格式地址是否良好。只需检查“@”字符。

答案 5 :(得分:-1)

你可以使用这个功能

function isemail(field){
    with (field){
      apos=value.indexOf("@");
      apos2=value.lastIndexOf("@");
      dotpos=value.lastIndexOf(".");
      if (apos<1 || dotpos-apos<2 || apos!=apos2 || value=="example@example.com")
                return false;
      else return true;
      }
}

答案 6 :(得分:-1)

这个正则表达式应该有效:

 /^(([a-zA-Z0-9\._-]+)@([a-zA-Z0-9-]+)\.([a-zA-Z]{2,4}))$/g