Die folgende Code Ergebnisse in "undefiniert" für liest:Ein seltsames regex Problem
var a = /cat/g;
var l = "A test sentence containing cat and dog.";
var r = a.exec(l);
document.write(r.lastIndex);
Allerdings funktioniert es perfekt für r.index (und R.Eingang).
Ich benutze Firefox. Hat jemand eine Ahnung?
EDIT: OK, der obige Code funktioniert perfekt in IE! Außerdem funktioniert es in Firefox perfekt, wenn statt r.lastIndex in Zeile 5 a.lastIndex aufgerufen wird. Es sieht so aus, als würde Firefox die lastIndex-Eigenschaft im Ergebnis nicht zurückgeben, sondern nur die Eigenschaft für das Muster, das exec() aufruft. Interessant, dass IE beides setzt.
last ist auch eine Eigenschaft des Ergebnisses durch exec() zurück sowie eine Eigenschaft des Musters Aufruf exec() –
@Crimson: Nein, 'lastIndex' ist keine Eigenschaft des Rückgabewerts von' exec': 'r.hasOwnProperty (" lastIndex ")' returns * false *. Siehe auch https://developer.mozilla.org/de/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec#Description – Gumbo