Angular 6 邮箱正则表达式

5
我希望使用正则表达式来验证我的应用程序中的所有电子邮件输入。但是有一个问题,我找到的所有正则表达式都允许没有顶级域名(TLD)的电子邮件。我需要一种可以帮助我拒绝像testing@testing这样的电子邮件的正则表达式。
示例:
- testing@testing.com 应该是有效的 - testing@testing.co.us 应该是有效的 - testing@testing 不应该是有效的
我目前使用的正则表达式是:
^([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})$
但它接受了例如testing@testing的电子邮件,这不是我想要的。如何验证电子邮件并拒绝没有TLD的电子邮件?

请查看此解决方案:https://dev59.com/3HVD5IYBdhLWcg3wOo9h - Torben Schramme
请查看以下网站:TLD列表:https://www.iana.org/domains/root/db;有效/无效地址:https://en.wikipedia.org/wiki/Email_address#Examples;RFC822电子邮件地址的正则表达式:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains - Toto
1个回答

15
这是您想要的正则表达式:

[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\.[a-z]{2,3}


1
如果您认为这是一个重复的问题,请标记它并不要复制答案。 - Toto
我在我的Angular应用程序中尝试过这个,但它无法匹配任何电子邮件。 - Node_Ninja
请在此处找到代码: https://stackblitz.com/edit/angular-edgene - Node_Ninja
1
嗨。我编辑了之前的答案,现在正则表达式可以工作了。 - Sachin Jagtap
我试过了,它可以工作。最初的正则表达式有什么问题? - Node_Ninja
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接