Лучший способ хранить группы захвата JS Regex в массиве?

Именно то, что просит название. Я приведу несколько примеров при объяснении моего вопроса.

Тестовая строка:

var test = "#foo# #foo# bar #foo#";

Скажем, я хочу извлечь весь текст между# (всеfooс но неbar).

var matches = test.match(/#(.*?)#/g);

С помощью.match как указано выше, он будет хранить все совпадения, но он просто выбрасывает группы захвата, которые ему кажутся.

var matches2 = /#(.*?)#/g.exec(test);

.exec метод, по-видимому, возвращает только первую строку, соответствующую совпадению результата в позиции0 массива и моя единственная группа захвата этого совпадения в позиции1.

Я исчерпал SO, Google и MDN, но поиск ответа не дал результатов.

Итак, мой вопрос, есть ли лучший способ хранить только совпадающие группы захвата, чем перебирать его с помощью.exec и звонитarray.push хранить захваченные группы?

Мой ожидаемый массив для теста выше должен быть:

 [0] => (string) foo
 [1] => (string) foo
 [2] => (string) foo

Чистые JS и JQuery ответы принимаются, дополнительные куки, если вы публикуете JSFiddle сconsole.log. =]

Ответы на вопрос(5)

Ваш ответ на вопрос