Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2011, 11h16   #1
Membre du Club
 
Inscription : mai 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 34
Points : 55
Points : 55
Par défaut Inclure une variable dans une RegExp

Bonjour,

Je voudrais inclure une variable dans une expression régulière en Javascript. J'ai lu plusieurs topics à ce sujet (celui-ci par exemple) mais je n'ai pas trouvé mon bonheur.

Voici ce que j'ai testé (et qui ne fonctionne pas) :

Code :
1
2
3
4
5
6
 
var num = '1234567890';
var nb_carac = 10;
var regex = new RegExp(/^[0-9]{eval(nb_carac)}$/gi);
if( !regex.test(num) )  alert('KO');
else              alert('OK');
J'ai aussi testé la même sans eval(), ainsi que la concaténation : '/^[0-9]{'+nb_carac+')}$/' , sans succès à chaque fois.

Je voudrais passer nb_carac en paramètre d'une fonction, et vérifier que la chaîne contient nb_carac caractères.

Est-il possible de mettre ainsi une variable dans une expression régulière ?

Merci pour votre aide.
17795 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 11h30   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
Tu mélanges les deux syntaxes de création de syntaxe de regExp
la première syntaxe prend dexu paramètres string
Code :
new RegExp(srtingreg, stringmod)
la seconde
ne permet pas de concaténation de string


Surtout ne pas utiliser d'eval!

Code :
1
2
3
 
var nb_carac = 10;
var regex = new RegExp("^[0-9]{"+nb_carac+"}$","gi");
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 11h38   #3
Membre du Club
 
Inscription : mai 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 34
Points : 55
Points : 55
Super, merci d'avoir rectifié mes erreurs ! J'essayerai de m'en souvenir
17795 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h02.


 
 
 
 
Partenaires

Hébergement Web