Javascript将电子邮件地址拆分为Regex

Javascript split the email address - Regex

本文关键字:Regex 拆分 电子邮件地址 Javascript      更新时间:2023-09-26

我有一个字符串,比如:

'"test@test.com, "Ragland Raja, II" <moses.jelsey@gmail.com>, "'

我想把这个字符串分成一个数组,比如

array[0] = test@test.com
array[1] = "Ragland Raja, II" <moses.jelsey@gmail.com>

你能给我一些建议吗?

我认为您必须分块完成这项工作。首先替换引号中的逗号+空格,这样就不会打乱拆分操作。在这里,我用下划线替换了空格。

str.replace(/(".*,)( )(.*")/g, '$1_$3');   
  // 'test@test.com, "Ragland Raja,_II" <moses.jelsey@gmail.com>,  '

然后你只需要运行一个常规的拆分操作:

str.split(", ");
  // ["test@test.com", ""Ragland Raja,_II" <moses.jelsey@gmail.com>", ""] 

之后,返回并交换每个项目中引号内的,_。下面是完整的代码。

解决方案

var str = 'test@test.com, "Ragland Raja, II" <moses.jelsey@gmail.com>, ';
str = str.replace(/(".*,)( )(.*")/g, '$1_$3');
var arr = str.split(", ");
arr.forEach(function(el, i, array){
    array[i] = el.replace(",_", ", ");
});
  // arr = ["test@test.com", ""Ragland Raja, II" <moses.jelsey@gmail.com>", ""]