Nu ska jag se om jag kan förklara mitt problem här.
Jag ska matcha tillåtna element som anges i en sträng, själva uttrycket är inga problem. Jag använder följande just nu:
Svaret jag får är "a[, abbr[, b[, strong/" osv...
([a-z0-9]+)(\\[|,|/)
new RegExp("([a-z0-9]+)(\\[|,|/)", "ig");
Då får jag två grupperingar per träff ($1 innehåller a, $2 innehåller [), det är ju $1 jag är intresserad av, men jag kan inte läsa ut dom för sig själva.
Jag kan ju gå igenom alla matcher med följande:
for(var i =0; i < results.length; i++) {
...
}
Problemet då är ju att jag kommer inte åt grupperingarna per träff (jag kan läsa ut varje träff med results[$i], men får bara hela träffen då, t.ex. a[, abbr[ osv).
RegExp.$1 och RegExp.$2 är tillgängliga men dom kommer jag bara åt för sista träffen, inga andra, inte per träff.
Så min fråga i korthet är:
Hur kommer jag åt grupperingar per träff i javascript? I stil med PHP där man får en array med alla träffar & grupperingar.
Hoppas
Innan någon säger det så kan jag säga direkt jag kan använda följande regex också för att helt slippa problemet, med följande så får jag bara ut det jag vill (a, abbr, b, strong osv...) och har inte längre behov av att komma åt $1, $2 för varje träff.
Men jag vill lära mig hur det görs eller om det ens går att göra.
([a-z0-9]+)(?=(\\[|,|/))
new RegExp("([a-z0-9]+)(?=(\\[|,|/))", "ig");