2016-01-28 5 views
0

У меня возникают проблемы с получением совпадений с простым регулярным выражением. Вот код:Javascript match возвращает только первый матч

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

Этот код возвращает ["{idSalaVirtual}"] instead of ["{idSalaVirtual}", "{idSalaVirtualOferta}"], который был результатом я был сматривая. Если я удалю {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

Да, это сработало. большое спасибо –

Смежные вопросы