javascript - 获取文本中有多少个 'field' 实例,并将具有相同 'field' 的每个值附加到同一变量

标签 javascript email

假设我有一封 mailto 电子邮件,其中存在一个复选框问题,要求用户从水果列表中挑选最好的水果(选中所有适用的选项)。最终他们得到了苹果、香蕉和梨。然后,他们触发的 mailto 电子邮件包含以下内容(假设问题中的复选框名为 bestFruits):

...
bestFruits=apples
bestFruits=bananas
bestFruits=pears
...

因此,在我的 javascript 文件中,我使用以下行来解析电子邮件中的值:

var bestFruits = mail.bodyText.match(/bestFruits=\s*(\S.*\S)\s*/);

所以我的问题是,这(大概)最终只会有一个值。我需要的是让 javascript 循环并将电子邮件中 ​​bestFruits 的每个值添加到 bestFruits 变量中,以便每个值(苹果、香蕉和梨)都在 bestFruits 变量中。

有什么办法可以做到这一点吗?我尝试创建一个 for 循环,但无法确定循环 mailto 电子邮件正文并将 bestFruits 的每个实例添加到变量的语法。

我对这一切还很陌生,因为我是最近才介入的。如果我遗漏了一些基本的东西,我会很感激快速指出。如果您需要更多信息,我很乐意尝试提供。

感谢大家的阅读!

最佳答案

你不需要循环。您确实需要匹配所有水果(按照您的示例,匹配 bestFruits 之后的所有单个单词),从匹配中删除 bestFruits=,加入结果数组并存储它在一个变量中。像这样:

var bestFruits = mail.bodyText.match(/bestFruits=\w+/g)
                              .map(function(x){return x.split('=')[1]})
                              .join(',');

它有什么作用:

  1. 与您所有最好的水果相匹配。
  2. 获取每个 bestFruits=abc 元素并将其替换为 abc(即,使用 = 分隔符分割并获取第二部分)<
  3. 制作水果字符串(使用 , 连接器将结果数组转换为字符串)。

关于javascript - 获取文本中有多少个 'field' 实例,并将具有相同 'field' 的每个值附加到同一变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843684/

相关文章:

javascript - array.prototype.flat 在 nodejs 中未定义

javascript - Typescript for (let i of someArray) 在 IE11 中不起作用

html - GMail HTML 电子邮件制作图像 7000px 高

c# - 如何在 C# 中异步发送电子邮件获得成功或失败通知?

regex - 电子邮件本地部分的尾随点

javascript - 如何遍历数组并返回匹配值

Javascript - 获取两个日期之间的日期数组

javascript - 将 JSON 对象发送到 Web 服务时 $.ajax 函数失败

python - Django 管理员电子邮件

email - 如何向具有唯一内容的基于CSV的唯一收件人组发送电子邮件