javascript - 正则表达式匹配用大括号包裹的单词

标签 javascript regex arrays templates match

在 javascript 中,我有这样一段 HTML:

<h2>{title}</h2>
<p><a href="{url}">{content}</a></p>

我正在尝试使用正则表达式“匹配”来吐出所有 {item} 的数组。所以我的输出应该是这样的:

['title', 'url', 'content']

我已经做到了:

var pattern = new RegExp("\{[a-zA-Z]+\}+");
var match = pattern.exec("{Sample} bob {text}");

但它只返回第一个标签。

这超出了我的正则表达式技能。谁能帮忙?

干杯!

最佳答案

您需要使用全局标志创建一个模式:

var pattern = new RegExp("\{[a-zA-Z]+\}", "g");

或:

var pattern = /\{[a-zA-Z]+\}/g;

然后您可以在您的字符串上调用 match() 方法来获取匹配列表:

var matches = "{Sample} bob {text}".match(pattern);

关于javascript - 正则表达式匹配用大括号包裹的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/296230/

相关文章:

javascript - 如何使用 Ruby 和 JavaScript 计算多语言文本中的单词数

javascript - 检查属性的属性是否存在

regex - 如何用正则表达式匹配第一个单词?

arrays - Swift:从 JSON 中解析数组

Javascript ascii 字符串到十六进制字节数组

javascript - 使用 uuid 键修改对象数组

asp.net 中的 JavaScript 函数

javascript - 在 Electron 中,为什么我不能将 Node 模块中的值分配给 angularjs View ?

c++ - 正则表达式驱动的 while 循环没有正确循环

正则表达式在 alpine linux 中制作单词驼峰大小写