如何在 JavaScript 中拆分具有多种格式的电子邮件列表?

Posted

技术标签:

【中文标题】如何在 JavaScript 中拆分具有多种格式的电子邮件列表?【英文标题】:How do I split a list of emails with multiple formats in JavaScript? 【发布时间】:2021-12-04 19:53:48 【问题描述】:

我有一个电子邮件列表,电子邮件有两种格式:

    名称为name <email@address.com> 没有名字email@address.com

我想知道是否有办法在 javascript 中用不同的分隔符分割这个列表。

示例列表:email@address.com,name1 <email1@address.com>,email2@address.comemail@address.com,email1@address.com,email2@address.comemail@address.com email1@address.com name2 <email2@address.com>email@address.com email1@address.com email2@address.com

email@address.com
name1 <email1@address.com>
email2@address.com

email@address.com
email1@address.com
email2@address.com

目前,我使用简单电子邮件格式 email@address.com 的三个分隔符拆分列表,但我仍然对如何执行此操作感到困惑,包括名称格式 name &lt;email@address.com&gt;

这是我用于此的代码:

    var emailInput = $(this);
    var clipboardData = e.originalEvent.clipboardData || window.clipboardData;
    var pastedData = clipboardData.getData('Text');
    var emails = pastedData.split(/[\r,\s]+/);

例如我需要提取的内容 email@adress.com name &lt;email@address.com&gt; ==> ["email@address.com","name &lt;email@address.com&gt;"]

【问题讨论】:

也许pastedData.match(/[^\s&lt;&gt;,@]+@[^\s&lt;&gt;,]+/g) 可以。 @WiktorStribiżew 它不适用于拆分方法var emails = pastedData.split(/[^\s&lt;&gt;,@]+@[^\s&lt;&gt;,]+/g); 你不需要使用split,是吗? @WiktorStribiżew 是的,我需要拆分列表以单独获取每封电子邮件 不,你没有。您始终可以使用最适合当前场景的方法提取数据。 【参考方案1】:

假设您不是在寻找电子邮件地址验证器,并且已经知道您的列表中有电子邮件地址,那么您可以这样做:

let data = `
email1@address.com,name2 <email2@address.com>,email3@address.com
email4@address.com,email5@address.com,email6@address.com
email7@address.com email8@address.com name9 <email9@address.com>
email10@address.com email11@address.com email12@address.com
name13 <email13@address.com>
email14@address.com
email15@address.com
email16@address.com
`;

let result = data.match(/[^,;<>\s]+@[^,;<>\s]+|[^,;<>\s]+\s+<[^,;<>\s]+@[^,;<>\s]+>/g);

console.log(result);

【讨论】:

以上是关于如何在 JavaScript 中拆分具有多种格式的电子邮件列表?的主要内容,如果未能解决你的问题,请参考以下文章

13如何拆分含有多种分隔符的字符串 14如何判断字符串a是否以字符串b开头或结尾 15如何调整字符串中文本的格式 16如何将多个小字符串拼接成一个大的字符串

使用javascript将json数据集值拆分为数据表

如何将我的 javascript 代码拆分为单独的文件?

PySpark如何读取具有多种编码的字符串的文件

如何显示具有多种样式的图层图

具有多种日期格式的 JSONDecoder?