Javascript et regexp [Résolu/Fermé]

Signaler
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
-
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
-
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

9 réponses

Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
898
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 ""
}

??
Messages postés
57
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
14 février 2009
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 ""
}

@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 ...
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
898
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 ""
}

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 :)
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
898
ah vi, suis c*n moi !
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
898
re,

la solution est celle de TLa.
une confirmation trouvée chez developpez.
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 ?
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
898
il faut être inscrit pour pouvoir "résoudre".
je te le coche.

bon courage pour la suite de ton code !
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
108
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