Les résultats de code suivant dans pour lastIndex "undefined":Un problème regex bizarre
var a = /cat/g;
var l = "A test sentence containing cat and dog.";
var r = a.exec(l);
document.write(r.lastIndex);
Cependant, il fonctionne parfaitement pour r.index (et r.input).
J'utilise Firefox. Est-ce que quelqu'un a une idée?
EDIT: OK, le code ci-dessus fonctionne parfaitement dans IE! De plus, dans Firefox, cela fonctionne parfaitement si au lieu d'appeler r.lastIndex sur la ligne 5, un a.lastIndex est appelé. Il semble que Firefox ne renvoie pas la propriété lastIndex dans le résultat - il définit plutôt la propriété pour le modèle appelant le exec() uniquement. Intéressant que IE définit les deux.
lastIndex est également une propriété du résultat retourné par exec() ainsi qu'une propriété du motif invoquer exec() –
@Crimson: Non, 'lastIndex' n'est pas une propriété de la valeur de retour de' exec': 'r.hasOwnProperty (" lastIndex ")' renvoie * false *. Voir aussi https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec#Description – Gumbo