使用javascript,我如何分割带有逗号或“0”的电子邮件ID列表@&引用;甚至在显示名中?

使用javascript,我如何分割带有逗号或“0”的电子邮件ID列表@&引用;甚至在显示名中?,javascript,regex,Javascript,Regex,例如: var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>" var s=“'Jim,Rose','John','jack@k.com'" 首先,我假设该字符串周围有双引号: var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com&g

例如:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>"
var s=“'Jim,Rose','John','jack@k.com'"

首先,我假设该字符串周围有双引号:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>";

如果事实上您想要“显示名称”,您可以使用以下方法执行非常类似的操作:

var names = s.match(/'.*?'/g);
这将生成此阵列:

["'Jim,Rose'", "'John'", "'jack@k.com'"]

谷歌的闭包库是我见过的最好的解决方案。看见集成所需的文件非常容易。

您可以尝试以下方法:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>";
matches = s.match(/'[^']+' *<[^>]+>/g);
var s=“'Jim,Rose','John','jack@k.com'";
matches=s.match(/'[^']+'*]+>/g);
如果所有名称都是单引号,则此操作应该有效。如果你需要捕捉像“迈克·奥尼尔”这样的镜头,那就更复杂了。考虑到这一点:

matches = s.match(/(['"]).+?\1 *<[^>]+>/g);
matches=s.match(/(['“])。+?\1*]+>/g);

上述数据的预期输出是什么?谢谢。但我的电子邮件ID没有显示名称var s='Jim,Rose','John',',jack@k.com"索尼",;
["'Jim,Rose'", "'John'", "'jack@k.com'"]
var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>";
matches = s.match(/'[^']+' *<[^>]+>/g);
matches = s.match(/(['"]).+?\1 *<[^>]+>/g);