et j'ain une expression régulière qui est celle-ci
var re =
/\<a.*\>\<img.*\>( )+(.*)( )+\<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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
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.
Ç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.*>( )+(.*)( )+<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.*>( )+(.*)( )+<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[^>]*>( )+(.*)( )+<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.*?>( )+?(.*?)( )+?<div.*?>.*?</div></a>/i;
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.
Ç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.*>( )+(.*)( )+<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.*>( )+(.*)( )+<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[^>]*>( )+(.*)( )+<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.*?>( )+?(.*?)( )+?<div.*?>.*?</div></a>/i;
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.
Ç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.*>( )+(.*)( )+<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.*>( )+(.*)( )+<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[^>]*>( )+(.*)( )+<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.*?>( )+?(.*?)( )+?<div.*?>.*?</div></a>/i;
Olivier Miakinen
Le 25/07/2007 12:32, je répondais à Étienne Sobole :
var re = /<a.*><img.*>( )+(.*)( )+<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.
Le 25/07/2007 12:32, je répondais à Étienne Sobole :
var re =
/<a.*><img.*>( )+(.*)( )+<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.
Le 25/07/2007 12:32, je répondais à Étienne Sobole :
var re = /<a.*><img.*>( )+(.*)( )+<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.
Etienne SOBOLE
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+ a écrit dans le message de news: 46a9bc3d$
Le 25/07/2007 12:32, je répondais à Étienne Sobole :
var re >>> /<a.*><img.*>( )+(.*)( )+<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.
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.*>( )+(.*)( )+<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.
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+ a écrit dans le message de news: 46a9bc3d$
Le 25/07/2007 12:32, je répondais à Étienne Sobole :
var re >>> /<a.*><img.*>( )+(.*)( )+<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.