当前位置:  开发笔记 > 编程语言 > 正文

用于电子邮件验证的正则表达式

如何解决《用于电子邮件验证的正则表达式》经验,为你挑选了3个好方法。

我已经编写了下面的正则表达式来进行非常简单的电子邮件验证.我打算发送确认链接.

/.*@[a-z0-9.-]*/i

但是,我想从当前状态增强它,因为像这样的字符串不会产生所需的结果:

test,my.name + test @ gmail-something.co.uk,test

"测试"部分不合需要地包括在匹配中.我没有成功地尝试过单词边界.

    我该怎么修改?

    虽然我保持这么简单,但它会排除任何有效的电子邮件格式吗?

谢谢!



1> 小智..:

这是一个很多更复杂!看邮件:: RFC822 ::地址,害怕......非常害怕.



2> alxp..:

不要使用正则表达式来验证电子邮件地址

相反,来自Ben Finney编写的mail.python.org/pipermail/python-list 1.

当人们问"我如何验证电子邮件地址是否有效?"时,我看到了最好的建议.是"尝试发送邮件给它".

它既是Pythonic,也是真正最好的方式.如果您确实想要确认,请不要尝试静态验证它; 使用电子邮件地址,并检查结果.发送电子邮件到该地址,除非您收到来自收件人的回复"是,这是正确使用的地址",否则不要再使用它.

发送系统的邮件传输代理(而非正则表达式)确定将邮件发送到的域的哪个部分.

域名系统(而非正则表达式)确定哪些域有效,以及哪个主机应该接收该域的邮件.

最特别的是,接收邮件系统而不是正则表达式确定哪些本地部分有效.

1 这是它死之前的原始链接


这个链接现在似乎已被打破.
"有着奇怪电子邮件地址的人可能会吐"你被解雇了.

3> Rick..:

几乎没有任何你使用的东西是短暂的,因为看起来很有意义将TRULY验证一个电子邮件地址.话虽如此,这是我通常使用的:

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

它实际上是ASP.NET的电子邮件地址的正则表达式验证器的内置正则表达式.

注意:此线程中给出的许多正则表达式可能在90年代有效,但在当今的Web环境中,TLD允许少于2个字符且超过4个字符.例如,info @about.museum是一个有效的电子邮件地址,因为.museum是新的长TLD之一.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有