Javascript拆分电子邮件地址 - Regex

时间:2014-10-07 20:20:25

标签: javascript regex email

我有一个字符串:

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

我想把这个字符串分成像

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

你能提出任何建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你必须完成这件事。首先替换引号内的逗号+空格,这样就不会弄乱分割操作。在这里,我用下划线替换了空格。

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>", ""]