Je suis obligé d'analyser du code HTML côté client (et oui, c'est vraiment la seule option dans ce cas), mais j'ai un peu de problème avec Firefox uniquement les éléments suivants:Problème lors de l'analyse du code HTML avec jQuery, regex et Firefox
$('#Extensions').load('/advanced/admin/config.php?type=setup&display=extensions #container li'
,function(){
$('li').each(function(){
var liRow=$(this).html();
var reExten=/([0-9]+)/g;
var extension = liRow.match(reExten)[0]
var reName=/>([a-zA-z0-9\s]+ *)/g;
var matchName = reName.exec(liRow);
var name = matchName[1]
});
}
);
le code HTML qui est revenu de load
est quelque chose le long des lignes de:
<a href="file.php?type=A&extension=1001">Test Extension <1001></a>
le regex semble fonctionner très bien si vous copiez et collez-le dans la console firefox JS et le code dans son ensemble fonctionne très bien dans Internet Explorer 7/8/9.
Alors, voici le petit problème. Dans firefox matchName
est null sur toutes les autres itérations de .each
. Exemple de sortie de Firebug:
LOG: Matches: The Boss
LOG: data: <A href="file.php?type=A&extension=13">The Boss <13></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: Test Extension
LOG: data: <A href="file.php?type=A&extension=1001">Test Extension <1001></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: John Smith
LOG: data: <A href="file.php?type=A&extension=3801">John Smtih<3801></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: Guy Smiley
LOG: data: <A href="file.php?type=A&extension=3802">Guy Smiley <3802></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: 3803
LOG: data: <A href="file.php?type=A&extension=3803">Jane Doe <3803></A>
LOG: regex: /extdisplay=([0-9]+)/g
LOG: Matches: 3804
LOG: data: <A href="file.php?type=A&extension=3804">John Doe <3804></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
Enfin, cela ne semble se produire lors de l'utilisation re.exec
et jamais sur str.match(re)
. Je suis complètement perdu et je commence à le faire depuis une heure maintenant, j'espère que la question aura un sens!
Je suis sûr que ce ne est pas ce que vous voulez entendre, comme pas une solution à votre problème: ne pas utiliser regex sur HTML – pinkfloydx33
Si l'on pouvait éviter à tout ce que je le ferais! La partie la plus étrange est que les regex eux-mêmes fonctionnent très bien dans tout autre navigateur que j'ai testé et toujours lorsqu'il est appelé en dehors d'une boucle for ... En un mot, je suis perplexe. – HurnsMobile
Comment générez-vous cette sortie de journal? Et pourquoi la regex est-elle différente sur l'une des lignes de journal? –