2016-01-28 106 views
0

我遇到问题以便将匹配项发送到简单的正则表达式。下面是代码:Javascript匹配只返回第一个匹配项

var keyWordRegex = /\{\w+\}/; 
"idSalaVirtual={idSalaVirtual}&idSalaVirtualOferta={idSalaVirtualOferta}".match(keyWordRegex) 

此代码返回["{idSalaVirtual}"] instead of ["{idSalaVirtual}", "{idSalaVirtualOferta}"]这是我specting结果。如果我从测试字符串中删除{idSalaVirtual},则返回["{idSalaVirtualOferta}"]

有谁知道为什么它不是从方法中返回两个单词?

在此先感谢。

问题用'g'标志解决了,但我甚至不知道这个标志的存在。所以没有理由将其标记为The 'g' flag in regular expressions
如果有人遇到同样的问题,我不知道g字旗的存在,他们就不会找到答案。

+0

不'/ ....正则表达式..../g'工作?你需要让它变得贪婪,才能找到所有下面的比赛。 –

+0

是的,它的确如此。谢谢。 –

回答

3

使用g标志

var keyWordRegex = /\{\w+\}/g; 
    "idSalaVirtual={idSalaVirtual}&idSalaVirtualOferta={idSalaVirtualOferta}".match(keyWordRegex) 
+0

现在工作吗? –

+0

是的,它的工作。非常感谢你 –