首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用第二级Tld通过电子邮件发送正则表达式

使用第二级Tld通过电子邮件发送正则表达式
EN

Stack Overflow用户
提问于 2012-09-24 22:05:02
回答 1查看 255关注 0票数 0

我正在尝试创建一个电子邮件正则表达式。这就是我想要实现的:

“_A-Za-Z0-9-”,可选,后跟“._A-Za-Z0-9-”,并以“@”符号结束。电子邮件的域名必须以“A-Za-Z0-9”开头,后跟一级Tld (.com,.net)“.A-Za-z0-9”,可选的后跟二级Tld (.com.au,.com.my)“.A-Za-z{2,}”,其中二级Tld必须以点“”开头。“”且长度必须等于或大于2个字符。

这就是我到目前为止所知道的:

代码语言:javascript
复制
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\w?\.[A-Za-z]{2,})

对我不起作用。我希望它能验证这些电子邮件:

代码语言:javascript
复制
myname@compgg.com
ffdicot@foobar.com.au
i3dicot@foobar.co.uk

而不是:

代码语言:javascript
复制
myname@foobar.foo.bar.com

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2012-09-24 22:25:29

别。

这是RFC2822对应的正则表达式:

代码语言:javascript
复制
(?:[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])+)\])

最好将其实现为单独的函数,每个函数检查不同的需求……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12566699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档