J'essaie d'obtenir un texte de lien en utilisant regex. il y a peut-être plusieurs liens qui peuvent correspondre au modèle et je veux obtenir le plus éloigné jusqu'au 4ème. Voici mon code JS:Expressions régulières Javascript - exec boucle infinie
var level=1;
while (_match = /<a href="http:\/\/www.mysite.com\/x\/(?:.*)>(.*)<\/a>/img.exec(_html)){
if (level < 5) (_anchor_text=_match[1]);
level ++;
}
Le problème est que ce code entre boucle infinie sur IE (fonctionne bien sur FF), bien que le modèle existe. Toute aide est appréciée.
Ce code réellement utilisé pour travailler jusqu'à FF3.6, parce que le même objet RegExp a été réutilisé à chaque itération (conformément à ES3). Mais alors ES3 a été remplacé par ES5, qui a changé la façon dont les littéraux RegExp sont traités: "Les expressions littérales régulières retournent maintenant un objet unique chaque fois que le littéral est évalué." Rendre efficacement le drapeau 'g' inutile dans votre cas. http://es5.github.com/#E Encore une fois, IE était en avance sur son temps. – Robert