IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Inclure une variable dans une RegExp [RegExp]


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu mélanges les deux syntaxes de création de syntaxe de regExp
    la première syntaxe prend dexu paramètres string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new RegExp(srtingreg, stringmod)
    la seconde
    ne permet pas de concaténation de string


    Surtout ne pas utiliser d'eval!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var nb_carac = 10;
    var regex = new RegExp("^[0-9]{"+nb_carac+"}$","gi");
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Par défaut
    Super, merci d'avoir rectifié mes erreurs ! J'essayerai de m'en souvenir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo