首页 > 解决方案 > 由分号正则表达式分隔的多个电子邮件

问题描述

大家好,我有一个要求,我必须验证用分号分隔的电子邮件地址。例如“test@test.com; test@Tes.com”类似这样的东西。我正在使用以下正则表达式:

(([^@]+@[^\s@]+\.[^\s@;]{2,}\;{0,1}\s*))+

这里的问题是,即使中间没有分号但有空格,正则表达式也可以工作"test@test.com Test@tes.com"。但这不正确。所以谁能告诉我如何实现这一点?另外,当只有一个电子邮件 ID 时,不需要分号介于两者之间

标签: javascriptjavac#regexweb

解决方案


找到了一个有效的正则表达式。测试到 3 封电子邮件。

([^@]+@[^\s@]+.[^\s@;]{2,})+(\;([^@]+@[^\s@]+.[^\s @;]{2,}){1,1})*

测试样品:

  1. test@test.com;sample@google.com;dsdsd@dsd.sd -> 真
  2. test@test.com;sample@google.com dsdsd@dsd.sd -> false
  3. test@test.com -> 真
  4. 测试@test.com;-> 假的

这里的关键是遵循 \w+(.\w+)+ 模式。希望这可以帮助


推荐阅读