Hallo,
Diese Art die Treffer zu benutzen ist z.b. in Perl üblich, wieso ist das in JS veraltet?
Wieso, ist mir immer noch nicht klar
exec() ist die ECMAScript-Methode, RegExp.$1 ist die veraltete Netscape-JavaScript-Lösung. Mit exec(9 existiert eine m.M.n. klarere Alternative. Ich führe eine Methode aus und bekomme ein Rückgabewert, anstatt dass irgendwo bei einem zentralen Objekt Eigenschaften angelegt werden.
Was mich noch an den Erläuterungen etwas irritiert, ist diese Aussage:
Über nach oben RegExp.$1 und folgende Eigenschaften können lediglich die Teiltreffer des letzten Vorkommens gelesen werden. exec() hat diese Einschränkung nicht.
http://de.selfhtml.org/javascript/objekte/regexp.htm#exec
Welche Einschränkung?
Ok, das ist blöd ausdrückt.
while (Ergebnis = Suche.exec(derSatz)) {
document.write("<li>" + Ergebnis[1] + "</li>");
}
Könnte man natürlich auch so schreiben:
while (Suche.exec(derSatz)) {
document.write("<li>" + RegExp.$1 + "</li>");
}
Gemeint war, dass man exec() zweimal ausführen kann und die beiden Ergebnisarrays parallel existieren können.
Mathias