Javascript et regexp

Résolu
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   -  
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   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
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
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
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
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
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
ah vi, suis c*n moi !
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
re,

la solution est celle de TLa.
une confirmation trouvée chez developpez.
0
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
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   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