Javascript et regexp

Résolu
nEm3sis Messages postés 722 Statut Membre -  
nEm3sis Messages postés 722 Statut Membre -
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. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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
  2. TLa Messages postés 57 Statut Membre 12
     
    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
  3. nEm3sis
     
    @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
  4. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nEm3sis
     
    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. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
       
      ah vi, suis c*n moi !
      0
  7. nEm3sis
     
    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
  8. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    il faut être inscrit pour pouvoir "résoudre".
    je te le coche.

    bon courage pour la suite de ton code !
    0
  9. nEm3sis Messages postés 722 Statut Membre 113
     
    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