什么javascript RegEx将匹配我的mergefields的所有实例?

时间:2015-02-05 21:32:04

标签: javascript regex

我需要一个RegEx模式来匹配任何/所有看起来像{!(。*)}

的实例

我尝试过以下方法: 即。 var mergefield_array = value.match(patt);

其中value =' {!lat},{!lng}' 和patt = / {!(。*)} /

它会返回一个结果:{!lat},{!lng} 但我希望在这种情况下返回两场比赛(' {!lat}'和' {!lng}')。

我该怎么做?

科林G

1 个答案:

答案 0 :(得分:2)

由于使用了.*,所以你的正则表达式本质上是贪婪的,因此首先匹配{到最后},在途中抓住任何东西。

要解决问题,你可以让它变得非贪婪:

patt = /{!(.*?)}/g

或使用否定:

patt = /{!([^}]*)}/g