假设我有一封 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(',');
它有什么作用:
- 与您所有最好的水果相匹配。
- 获取每个
bestFruits=abc
元素并将其替换为abc
(即,使用=
分隔符分割并获取第二部分)< - 制作水果字符串(使用
,
连接器将结果数组转换为字符串)。
关于javascript - 获取文本中有多少个 'field' 实例,并将具有相同 'field' 的每个值附加到同一变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843684/