Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insertion de variable dans une regex

Sujet résolu
    12 mai 2010 à 11:54:03

    Bonjour les Zeros.

    Je rencontre quelques difficultés avec un morceau de code en javascript utilisant des expressions régulières.

    Mise en situation :

    J'utilise la bibliothèque jQuery, mais celle-ci n'interviendra pas dans le script.
    J'utilise une système de classe pour récupérer une numéro id. Le but est de charger une popup en Ajax. Jusque là, tout va bien.

    Le code
    function getClassAttr(objclass, classname)
    {
    	thisclass = $(objclass).attr('class');
    	regexp = "\/(.*?)"+classname+"\\[(.*?)\\](.*?)\/gi";
    	alert(regexp);
    	thisclass = thisclass.replace(regexp, '$2' ) ;
    	return thisclass;
    }
    


    Dans une autre code, j'appelle la fonction en utilisant :
    thisclass = getClassAttr(this, 'fastprofile');
    


    l'alert du code me retourne très exactement :

    /(.*?)fastprofile\[(.*?)\](.*?)/gi

    Parfait ! C'est très exactement l'expression qu'il me faut ! Sauf que ça ne fonctionne pas... (return = fastprofile[1])

    J'ai essayé de faire un simple :
    thisclass = thisclass.replace(/(.*?)fastprofile\[(.*?)\](.*?)/gi, '$2' ) ;
    

    Et ca fonctionne parfaitement... (return = 1)

    Je suis complètement bloqué, et je ne comprend vraiment pas d'où peut venir mon erreur...

    En vous remerciant par avance de votre réponse.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      12 mai 2010 à 11:59:54

      Une regexp n'est pas une chaine (string), essaye ça :

      regexp = new RegExp("(.*?)"+classname+"\\[(.*?)\\](.*?)", "gi");
      
      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2010 à 12:04:48

        Non d'une pipe en bois ! (pardonnez moi l'expression quelque peu outrageuse...)

        Je suis vraiment un zéro ^^ Merci beaucoup seebz ! Le pire, c'est que j'avais essayé avec un new RegExp mais je m'étais planté dans les doubles slashs...

        Bravo !
        • Partager sur Facebook
        • Partager sur Twitter

        Insertion de variable dans une regex

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown