RegExp匹配括在大括号中的单词

Cor*_*rey 2 javascript regex arrays templates match

在javascript中,我有一个像这样的HTML块:

<h2>{title}</h2>
<p><a href="{url}">{content}</a></p>
Run Code Online (Sandbox Code Playgroud)

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

['title', 'url', 'content']
Run Code Online (Sandbox Code Playgroud)

我已经达到了:

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

但它只返回第一个标签.

这超出了我的正则表达能力.有人可以帮忙吗?

干杯!

Jan*_*rts 7

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

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

要么:

var pattern = /\{[a-zA-Z]+\}/g;
Run Code Online (Sandbox Code Playgroud)

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

var matches = "{Sample} bob {text}".match(pattern);
Run Code Online (Sandbox Code Playgroud)