Problème de REGEX en Javascript

ViPHP
ViPHP | 1996 Messages

05 oct. 2009, 11:49

Bonjour à tous,

J'essaye depuis plusieurs jours de me contenter de simuler un retour XML.
J'ai une variable retournée en AJAX qui ne peut être QUE en texte.
Aussi j'ai simulé le XML en mettant dans ma variable texte "responseText" des balises <RESULTAT style="display:none;">Le résultat est OK screugneugneu</RESULTAT>.
Ce que je voudrais : récupérer le "Le résultat est Ok screugneugneu". Je me suis donc dirigé vers REGEX and Javascript mais je butte sur le REGEX. Ma fonction reg.test me retournant toujours FALSE :

Code : Tout sélectionner

function simule_xml (balise,texte) { var valeurRetour = false; var reg = new RegExp ("#^<"+balise+">([0-9][a-zA-Z])</"+balise+">$#","gi"); if (reg.test(texte)) { valeurRetour = reg.exec(texte); } return valeurRetour; }
Ce que j'ai déjà essayé :

Code : Tout sélectionner

#^<"+balise+">(.*)</"+balise+">$# ^<"+balise+">(.*)</"+balise+">$ #^<"+balise+">()</"+balise+">$# valeur de retour <RESULTAT> uniquement (sans le style="display:none;")
Auriez vous quelques pistes que je puisse explorer ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 1996 Messages

05 oct. 2009, 13:15

J'ai avancé :

Code : Tout sélectionner

var reg = new RegExp ("<"+balise+".*>(.*)</"+balise+">","gi");
me retourne TRUE pour le reg.test mais reg.exec me retourne NULL
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 1996 Messages

05 oct. 2009, 14:19

Bon j'ai résolu mon problème :

voici le résultat :

Code : Tout sélectionner

function simule_xml (balise,texte) { var valeurRetour = false; var expression = "<"+balise+".*>(.+)</"+balise+">" var reg = new RegExp (expression,"i"); if (reg.test(texte)) { valeurRetour = reg.exec(texte); } return valeurRetour; }
on interroge la varibale retournée via

Code : Tout sélectionner

if (simule_xml('resultat',textResponse)) { var resultatOk = simule_xml('resultat',textResponse); alert (resultatOk[1]); }
Merci à ceux qui mon lu (au moins les robots...)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 1996 Messages

05 oct. 2009, 19:03

Rebonjour.
Finalement quand le texte contient des /r/n ou un autre <> la fonction reg.test ne marche plus.
Je m'en sort en enlevant tous les retours chariots et les sauts de lignes et les autres balises HTML mais c'est assez contraignant. Quelqu'un a-t-il une idée ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 4039 Messages

05 oct. 2009, 22:29

Salut salut,

J'ai plus ou moins suivi tes pérégrinations ( :wink: ), mais sans avoir de solution à ton problème, j'ai juste une question très pragmatique (parce que c'est bien beau les objectifs compliqués, mais des fois il faut du résultat), pourquoi ne pas passer par Json ? 8-|
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 1996 Messages

06 oct. 2009, 09:32

Heu... Connais pas c'est quoi ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 3607 Messages

06 oct. 2009, 09:35


ViPHP
ViPHP | 1996 Messages

10 oct. 2009, 10:23

Merci je regarde cela...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr