Beste Weg, um JS Regex-erfassungsgruppen in der Reihe?

Genau das, was Titel fragt. Ich werde Ihnen einige Beispiele bei der Erläuterung meiner Frage.

Test-string:

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

Sagen, ich will alle extrahieren von text zwischen # (alle foos aber nicht bar).

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

Mit .match wie oben, werde es speichern alle Spiele, aber es wird einfach wegwerfen, die Erfassung von Gruppen, so scheint es.

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

Den .exec Methode offenbar zurück, nur das erste Ergebnis der übereinstimmenden Zeichenfolge in der position 0 des Arrays und meine einzige Aufnahme der Gruppe, entsprechen die in der position 1.

Habe ich SO erschöpft, Google und MDN auf der Suche nach einer Antwort, ohne Erfolg.

So, meine Frage ist, gibt es eine bessere Möglichkeit zum speichern nur die übereinstimmende Erfassung von Gruppen, die als Schleife durch es mit .exec und ruft array.push zum speichern der erfassten Gruppen?

Voraussichtlich meine array für den test oben sollte sein:

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

Reine JS-und jQuery-Antworten werden akzeptiert, extra cookies, wenn Sie post JSFiddle mit console.log. =]

Schreibe einen Kommentar