javascript - 由分号正则表达式分隔的多个电子邮件
问题描述
大家好,我有一个要求,我必须验证用分号分隔的电子邮件地址。例如“test@test.com; test@Tes.com”类似这样的东西。我正在使用以下正则表达式:
(([^@]+@[^\s@]+\.[^\s@;]{2,}\;{0,1}\s*))+
这里的问题是,即使中间没有分号但有空格,正则表达式也可以工作"test@test.com Test@tes.com"
。但这不正确。所以谁能告诉我如何实现这一点?另外,当只有一个电子邮件 ID 时,不需要分号介于两者之间
解决方案
找到了一个有效的正则表达式。测试到 3 封电子邮件。
([^@]+@[^\s@]+.[^\s@;]{2,})+(\;([^@]+@[^\s@]+.[^\s @;]{2,}){1,1})*
测试样品:
- test@test.com;sample@google.com;dsdsd@dsd.sd -> 真
- test@test.com;sample@google.com dsdsd@dsd.sd -> false
- test@test.com -> 真
- 测试@test.com;-> 假的
这里的关键是遵循 \w+(.\w+)+ 模式。希望这可以帮助