Javascript et regexp

Résolu
Bonjour,
en javascript j'utilise cette fonction

function calc(mot,str)
{
var c = /motrecherché \(\s([\d.]{1,})/;
c.exec(str);
if(RegExp.$1) return "motrecherché : "+RegExp.$1+"\n"; else return ""
}

cette fonction fonctionne
mais j'aimerai utiliser la variable mot (un des paramettre de la fonction) a la place de la chaine "motrecherché"
est-ce possible ? si oui : comment ?

merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.7

9 réponses

  1. j'ai un compte ici mais comme on peut poster sans se connecter je ne me connecte pas

    en me connectant j'ai tout de suite vu comment faire
    *boulet inside*

    merci
    1. Contributeur
      il faut être inscrit pour pouvoir "résoudre".
      je te le coche.

      bon courage pour la suite de ton code !
      1. apres plusieurs essai j'ai enfin trouvé

        il suffisai de modifier un peu la fonction que TLa m'a donné en mettant des double \\

        function calc(mot,str)
        {
        var c = new RegExp( mot + " \\(\\s([\\d.]{1,})" );
        var r=c.exec(str);
        if(r[1]) return mot + " : "+r[1]+"\n"; else return ""
        }

        merci a votre aide et surtout dalida qui a bien participé

        au fait comment on met le sujet en résolut ici ?
        1. dsl dalida ceci ne peu pas fonctionner car c n'est pas une chaine or dans ce que tu ecris c en est une

          merci quand meme d'essayer :)
          1. Contributeur
            ah vi, suis c*n moi !
        2. Contributeur
          salut,

          et :
          function calc(mot, str)
          {
          var c = "/"+mot+"\(\s([\d.]{1,})/";
          c.exec(str);
          if(RegExp.$1) return "motrecherché : "+RegExp.$1+"\n"; else return ""
          }
          
          
          1. @Dalida oui j'ai essayé ca mais ca mrend le mot "mot" comme une chaine et non comme une variable

            @TLa cette fonction bug je ne sais pas pourquoi ...
            1. Salut,

              Une expression reguliere ca se construit aussi avec :
              new RegExp("pattern"[, "flags"]) ( voir http://synchro.net/docs/js/ref/regexp.html )

              function calc(mot,str)
              {
              var c = new RegExp( mot + " \(\s([\d.]{1,})" );
              var r=c.exec(str);
              if(r[1]) return mot + " : "+r[1]+"\n"; else return ""
              }

              1. Contributeur
                salut,

                as-tu essayé :
                function calc(mot,str)
                {
                var c = /mot \(\s([\d.]{1,})/;
                c.exec(str);
                if(RegExp.$1) return "motrecherché : "+RegExp.$1+"\n"; else return ""
                }

                ??