7

可能重复:
在 Javascript 中验证电子邮件地址?

我知道仅使用正则表达式无法验证电子邮件地址,但我认为我应该能够拒绝一些明显无效的电子邮件地址,以帮助友好的用户错误地输入不同的内容,例如他们的姓名或密码。电子邮件地址字段。因此,我不想拒绝任何有效的电子邮件地址,而是希望仅使用正则表达式来拒绝尽可能多的无效电子邮件格式。但我想任何 javascript/jquery/... 也可以。

这是我到目前为止所拥有的:

^.+@.+\..+$

是的,没有用于真正验证的正则表达式,但应该有一些用于拒绝。不,这不会阻止任何人输入虚假地址。是的,您仍然需要发送确认电子邮件来验证真实性。

上面的正则表达式将从 javascript 中使用。

--

在 .NET 中,我会改为让 .NET 使用验证电子邮件格式

    try
    {
      var mailAddress = new MailAddress(possibleMailAddress);
    }

如果没问题,检查域部分的 DNS 记录,看看是否有电子邮件服务器。只有当 DNS 记录清楚地表明没有电子邮件服务器或者没有这样的域时,电子邮件地址才会被拒绝。然后缓存一些结果,以加快未来的查找速度。

不过,我必须发送确认电子邮件以进行验证...

4

1 回答 1

6

官方标准RFC 2822描述了使用此正则表达式的有效电子邮件地址的语法:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
于 2012-07-24T12:09:46.923 回答