我需要一个正则表达式,它可以接受多种格式(见下文)的格式良好的电子邮件,这些格式将在逗号分隔的列表中输入。我有基本的电子邮件地址验证正则表达式,
^[\w\d._%+-]+@(?:[\w\d-]+\.)+(\w{2,})(,|$)
它可以处理测试用例A和B,但不能处理其他测试用例。我也试过
^(\<)?[\w\d._%+-]+@(?:[\w\d-]+\.)+(\w{2,})(\>)?(,|$)
它能够处理A、B和C,但只验证了每个测试用例D和E中的第一个电子邮件地址。我什至还没有测试格式3的正则表达式。
tl;dr需要一个正则表达式来验证电子邮件地址1、2和3。
测试正则表达式的好网站:Online Javascript Regex Tester
数据
测试用例
A. nora@example.com
B. nora@example.com, fred@example.com
C. <nora@example.com>
, fred@example.com
D. <nora@example.com>, <fred@example.com>
E. fred@example.com,<nora@example.com>
电子邮件地址格式
1. xyz@example.com
2. <xyz@example.com>
3. “xyz”<xyz@example.com>
编辑
我将此标记为可能的重复项:
反过来,这似乎是以下内容的副本:
两者都包含很多关于正则表达式作为电子邮件验证的有效性的讨论。但是,提供的投票最多的正则表达式似乎并没有完全符合我的要求,所以我认为这还没有回答。