javascript - 在字符串中查找多次出现
问题描述
如果我有以下字符串,我如何搜索它并返回一个对象,其键由 {{ key }} 表示,值设置为附加到它的单词,如,不是!之间的空间。
我不明白如何在以 {{ ...has some name... 开头并以 }} 结尾的字符串中查找每个出现,因为它并不总是被称为一二三四,如下例所示。
例子:
"The quick {{one}}onyx goblin {{two}}jumps over the {{three}}lazy {{four}} dwarf"
obj={
one:"onyx",
two:"jumps",
three:"lazy",
four:NULL
}
请注意,{{four}} 是 NULL,因为它在单词 dwarf之前有一个空格。dward 这个词没有直接附加到 {{four}}
感谢您的帮助,谢谢。
解决方案
这将起作用
const str = "The quick {{one}}onyx goblin {{two}}jumps over the {{three}}lazy {{four}} dwarf";
const result = {}
str.split("{{")
.map(m => ({
[m.split('}}')[0]]: m.includes("}}")
&& (m.split('}}')[1].split(' ')[0] || null)
})).filter(e => e[Object.keys(e)[0]] != false).forEach(e => { result[Object.keys(e)[0]] = Object.values(e)[0] })
console.log("result", result)
推荐阅读
- javascript - React JS - 未捕获的 NotFoundError:无法在 'Node' 上执行 'insertBefore':
- github - 为什么不能用 github api 创建一个新的 repo?
- ios - 呈现页面时出现 UiNavigation 错误
- c++ - '&' 标记 C++ 之前应为 ')'
- javascript - 针对另一个数组过滤一个数组
- postgresql - PostgreSQL 端口尚未准备好执行 ansible 任务
- api - 卷曲:错误:(3) 端口号以 '"' 结尾
- java - 如何从 TableView (JavaFX) 在新对话框窗口中填充控件
- ruby-on-rails - 使用 Rails 5.1 发送已编译的 webpacker 资产作为响应
- makefile - 在 Makefile 变量中散布项目