什么是最不好的正则表达式拒绝绝对无效的电子邮件地址?

tom*_*msv 6 javascript regex jquery email-validation

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

我知道没有办法只使用正则表达式来验证电子邮件地址,但我认为我应该能够拒绝一些明显无效的电子邮件地址,以便帮助那些错误输入不同内容的友好用户,例如他们的名字或密码.电子邮件地址栏.所以,我不想拒绝任何有效的电子邮件地址,但是想要拒绝尽可能多的无效电子邮件格式,只使用正则表达式.但我想任何javascript/jquery/...都可以.

这是我到目前为止:

^.+@.+\..+$
Run Code Online (Sandbox Code Playgroud)

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

上面的正则表达式将用于javascript.

-

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

    try
    {
      var mailAddress = new MailAddress(possibleMailAddress);
    }
Run Code Online (Sandbox Code Playgroud)

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

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

Ωme*_*ega 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])+)\])
Run Code Online (Sandbox Code Playgroud)