Javascript et regexp

Résolu/Fermé
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 - 14 oct. 2007 à 16:55
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 - 18 oct. 2007 à 22:51
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

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 oct. 2007 à 18:25
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
TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009 12
14 oct. 2007 à 20:52
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
@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
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
18 oct. 2007 à 21:22
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
18 oct. 2007 à 22:29
ah vi, suis c*n moi !
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
18 oct. 2007 à 22:38
re,

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

bon courage pour la suite de ton code !
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
18 oct. 2007 à 22:51
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