PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > exec sous internet explorer qui ne parche pas
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
exec sous internet explorer qui ne parche pas

Réponse
 
LinkBack Outils de la discussion
Vieux 25/07/2007, 10h05   #1
Etienne SOBOLE
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut exec sous internet explorer qui ne parche pas

salut j'ai une chaine de caractère qui contient ca

<a href='#' class='stattask' onclick='return selectSrv(10,
"13021756");'><img class='stattask' src='/wsi/std/svs.gif' alt='13034113'
title='13034113'>&nbsp;Adresse de Facturation 9&nbsp;<div
style='padding-left:16px;' style='padding-bottom:2px;'>Code
Postal:<b>34184</b> Num:<b>13034113</b></div></a>

et j'ain une expression régulière qui est celle-ci

var re =
/\<a.*\>\<img.*\>(&nbsp+(.*)(&nbsp+\<div.*\>.*\ <\/div\>\<\/a\>/i;

lorsque j'execute
var tRes = re.exec(text);

et bien sous FireFox j'ai bien le résultat voulu. a savoir je retrouve
Adresse de Facturation 9
et sous Internet Explorer et bien ca plante tout simplement.

Une idée??

Merci


  Réponse avec citation
Vieux 25/07/2007, 11h32   #2
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: exec sous internet explorer qui ne parche pas

Le 25/07/2007 11:05, Etienne SOBOLE a écrit :
> salut j'ai une chaine de caractère qui contient ca
>
> <a href='#' [...] <div


Attention, ici il y a une erreur : tu mets un élément de type %block%
dans un élément A qui n'accepte que des %inline%. Tu devrais envisager
d'y mettre un SPAN plutôt qu'un DIV.

> style='padding-left:16px;' style='padding-bottom:2px;'>[...]


Ça, je crois que c'est une erreur aussi car tu définis deux fois
l'attribut style : certains navigateurs pourraient ne garder que
la première définition, d'autres que la seconde.

Je pense que ce que tu voulais faire est :
style='padding-left:16px; padding-bottom:2px;'

> et j'ain une expression régulière qui est celle-ci
>
> var re =
> /\<a.*\>\<img.*\>(&nbsp+(.*)(&nbsp+\<div.*\>.*\ <\/div\>\<\/a\>/i;


Pourquoi tous ces \ ? Que je sache, les chevrons > et < ne sont pas des
caractères réservés dans une RegExp ?

var re =
/<a.*><img.*>(&nbsp+(.*)(&nbsp+<div.*>.*<\/div><\/a>/i;

> lorsque j'execute
> var tRes = re.exec(text);
>
> et bien sous FireFox j'ai bien le résultat voulu. a savoir je retrouve
> Adresse de Facturation 9
> et sous Internet Explorer et bien ca plante tout simplement.
>
> Une idée??


Ce que j'imagine, c'est peut-être que l'expression est trop complexe
pour lui.

Une idée serait de remplacer .* par [^>]* aux endroits où il ne peut en
principe pas y avoir de chevrons fermants. Donc :

var re =
/<a[^>]*><img[^>]*>(&nbsp+(.*)(&nbsp+<div[^>]*>.*<\/div><\/a>/i;

Une autre idée est de lui demander de privilégier les résultats les plus
courts plutôt que les plus longs mais je ne sais pas si ça joue vraiment
sur les performances :

var re =
/<a.*?><img.*?>(&nbsp+?(.*?)(&nbsp+?<div.*?>.*? <\/div><\/a>/i;
  Réponse avec citation
Vieux 28/07/2007, 14h16   #3
Etienne SOBOLE
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: /\</ ou /\>/ [Fut : exec sous internet explorer qui ne marche pas]

Salut.

je vais tester, mais finalement dans l'urgence, j'ai mis un Id sur la partie
que je voulais retrouver, et j'ai laisser tomber l'expression régulière.

mais je vais quand meme essayer pour savoir si c'est ca!
Merci

Etienne

"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
46a9bc3d$1@neottia.net...
> Le 25/07/2007 12:32, je répondais à Étienne Sobole :
>>>
>>> var re =
>>> /\<a.*\>\<img.*\>(&nbsp+(.*)(&nbsp+\<div.*\>.*\ <\/div\>\<\/a\>/i;

>>
>> Pourquoi tous ces \ ? Que je sache, les chevrons > et < ne sont pas des
>> caractères réservés dans une RegExp ?

>
> Aussi bizarre que ça puisse paraître, ces \< et \> dans l'expression
> rationnelle ont des chances d'être la cause du plantage. La norme ne
> me semble pas très claire en tout cas et je n'arrive pas à voir si
> « \< » doit être traduit en « < » comme dans les chaînes, ou bien si
> c'est une erreur.
>
> Essaye déjà ça, et si ça ne marche toujours pas regarde mes autres
> propositions. Mais en tout cas, les deux attributs style et le DIV
> dans un A restent des erreurs également, qu'il faudrait corriger.



  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 19h57.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,08955 seconds with 11 queries