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)
但它只返回第一个标签.
这超出了我的正则表达能力.有人可以帮忙吗?
干杯!
您需要使用全局标志创建模式:
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)