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 :

Le point est confondu avec la virgule [RegExp]


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut Le point est confondu avec la virgule
    Bonjour à tous,

    Je ne suis pas expert en rédaction d'expression régulière. Voici mon pattern :
    V.XXX.YYY.YYY où V est un caractère de A à Z et de 0 à 9 et XXX 3 caractère de 0 à 9 et enfin YYY deux fois 3 caractères de 0 à 9, le tout séparé par un point. Donc voici mon expression régulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[A-Z0-9]\.[0-9]{3}\.([0-9]{3}\.[0-9]{3})$
    Avec le code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //...
    var pattern=new RegExp("^[A-Z0-9]\.[0-9]{3}\.([0-9]{3}\.[0-9]{3})$","g");
    if (!code.match(pattern)) {
      isValid = false && isValid;  
    }
    Tout fonctionne à merveille, sauf que quand je mets une virgule à la place du point ça passe le test et ce n'est pas ce que je veux. D'ailleurs sur un site de validation de regex mon pattern fonctionne.

    Est-ce que quelqu'un à une idée pourquoi ça ne fonctionne pas comme voulu.

    Merci à tous pour votre aide.
    Sun Certified Java Programmer, SE 6 et Sun Certified Web Component Developer, J2EE 5

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Lorsque tu passes par le constructeur new RegExp(), il faut échapper les caractères d'échappement !

    Ceci dit, cette méthode est peu recommandée et il est nettement préférable d'utiliser un littéral :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pattern=/^[A-Z0-9]\.[0-9]{3}\.([0-9]{3}\.[0-9]{3})$/g;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Salut Bovino,

    Merci beaucoup pour ta réponse. Effectivement, ta solution a réglé bon problème.

    Quand tu parles de la méthode peu recommandée, est-ce la solution que tu proposes ? Pourquoi faut-il échapper les caractères d'échappement ?

    Si tu as un lien vers de la doc je suis preneur, ça me permettra d'approfondir le sujet.

    Merci encore pour ton aide et bonne journée.
    Sun Certified Java Programmer, SE 6 et Sun Certified Web Component Developer, J2EE 5

  4. #4
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Echappement des anti slashs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pattern=new RegExp("^[A-Z0-9]\\.[0-9]{3}\\.([0-9]{3}\\.[0-9]{3})$","g");
    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. Décimale avec des virgules à la place des points
    Par huître dans le forum SAS Base
    Réponses: 4
    Dernier message: 22/06/2012, 13h44
  2. Réponses: 7
    Dernier message: 14/06/2010, 15h25
  3. Réponses: 1
    Dernier message: 08/03/2009, 11h26
  4. Problème avec la virgule - point
    Par Telemak dans le forum Général Java
    Réponses: 2
    Dernier message: 28/12/2008, 19h19
  5. Réponses: 3
    Dernier message: 17/08/2005, 17h27

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