Javascript 从JS中的字符串中提取名称和电子邮件

Javascript 从JS中的字符串中提取名称和电子邮件,javascript,regex,email,Javascript,Regex,Email,如何从字符串中提取名称和电子邮件,其中电子邮件用逗号分隔 以下内容适用于单个电子邮件,但不适用于字符串内的电子邮件 (?:"?([^"]*)"?\s)?(?:<?(.+@[^>]+)>?) 以下是一个可能的答案: (?:^|, *)(?![^",]+")(?:((?=[^"<]+@)|(?![^"<]+@)"?(?<name>[^"<]*)"? *))<?(?<email>[^,>]*)>? (?:^ |,*)(?

如何从字符串中提取名称和电子邮件,其中电子邮件用逗号分隔

以下内容适用于单个电子邮件,但不适用于字符串内的电子邮件

(?:"?([^"]*)"?\s)?(?:<?(.+@[^>]+)>?)

以下是一个可能的答案:

(?:^|, *)(?![^",]+")(?:((?=[^"<]+@)|(?![^"<]+@)"?(?<name>[^"<]*)"? *))<?(?<email>[^,>]*)>?

(?:^ |,*)(?![^“,]+”(((?=[^“很难说数据会改变还是保持不变,但我的尝试是:

var re  = /(?:"?([A-Z][^<"]+)"?\s*)?<?([^>\s,]+)/g;

while (m = re.exec(str)) {
  if(m[1]) { m[1] = m[1].trim() }
  console.log("Name: "  + m[1]);
  console.log("Email: " + m[2]);
}

var re=/(?:“?([A-Z][^您期望的输出是什么?也尝试了一下,:)谢谢您的详细回答。
(?:^|, *)(?![^",]+")(?:((?=[^"<]+@)|(?![^"<]+@)"?(?<name>[^"<]*)"? *))<?(?<email>[^,>]*)>?
var re  = /(?:"?([A-Z][^<"]+)"?\s*)?<?([^>\s,]+)/g;

while (m = re.exec(str)) {
  if(m[1]) { m[1] = m[1].trim() }
  console.log("Name: "  + m[1]);
  console.log("Email: " + m[2]);
}