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. 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 ""
    }

    ??
    0
    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 ""
      }

      0
      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 ...
        0
        1. 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 ""
          }
          
          
          0
          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 :)
            0
            1. Contributeur
              ah vi, suis c*n moi !
              0
          2. 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 ?
            0
            1. Contributeur
              il faut être inscrit pour pouvoir "résoudre".
              je te le coche.

              bon courage pour la suite de ton code !
              0
              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
                0