Сделать массив из регулярного выражения

У меня есть эта строка:

{example1}{example2}{example3}

Это регулярное выражение для поиска этих { anything in it }:

/\{.*?\}/g

Теперь я хочу знать, как поместить их в массив, чтобы я мог сделать оператор for in.

Мне нужен массив вроде array("{example1}","{example2}","{example3}");?

Ответы

Ответ 2

var matches = '{example1}{example2}{example3}'.match(/\{.*?\}/g);
// ['{example1}', '{example2}', '{example3}']

Смотрите здесь.

Кроме того, вы должны использовать цикл for для итерации по массиву. for in может иметь побочные эффекты, такие как сбор большего количества вещей для итерации через цепочку прототипов. Вы можете использовать hasOwnProperty(), но цикл for намного проще.

Для производительности вы также можете кэшировать свойство length до включения его в состояние for.