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 :

Regexp de façon dynamique [RegExp]


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2014
    Messages : 7
    Par défaut Regexp de façon dynamique
    Bonjour, je veux essayer de lire les valeurs de input dynamiquement et de les vérifier avec leurs expressions réguliers.
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     input.onblur= function(){ 
        var reg = "/"+input.pattern+"/g";
        if (reg.test($(this).val())) {
            $(this).css("border","2px solid red");} else{ $(this).css("border","1px solid gray") ;
        }
    }
    il m'afficher une erreur :
    Uncaught TypeError: undefined is not a function
    et lorsque je mets la valeur de façon statique :
    var reg = /\d{8}/g; tout marche bien

    Est ce que vous avez une idée ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Lorsque vous écrivez :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = "/"+input.pattern+"/g";
    Vous définissez la variable reg comme étant une chaine de caractère, objet dont le prototype (String) ne possède pas de fonction test().
    Essayez avec :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = new RegExp(motif, drapeau);
    Pour vous, le drapeau ce sera "g"

  3. #3
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    le souci réside surtout dans la declaration de la regexp ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var reg = "/"+input.pattern+"/g";
    là tu déclares juste un string ...

    il existait avant une methode compile() de l'objet regexp qui a été dépréciée depuis la version 1.5

    il reste donc deux manières de construire une regExp dynamiquement

    * avec la synaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new RegExp([motif string],[modifier])
    ou motif string est le pattern de ta reg en format string


    * avec une bidouille d'eval
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    stringreg="/abc/g";
    reg=eval(stringreg);
    console.log(reg);
    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 !

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2014
    Messages : 7
    Par défaut
    merci beaucoup ça à marché

  5. #5
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    attention, j'ai bien mis que le eval était une bidouille ... hein
    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 !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/08/2006, 13h49
  2. Réponses: 5
    Dernier message: 29/01/2006, 22h17
  3. listbox ajustement de la taille de façon dynamique
    Par ana2sb dans le forum Access
    Réponses: 3
    Dernier message: 14/10/2005, 17h11
  4. Nommer un objet de façon dynamique
    Par jflebegue dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/09/2005, 14h01

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