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 :

aide à l'écriture [RegExp]


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut aide à l'écriture
    Bonjour à tous,

    Les codes postaux en Angleterre peuvent avoir les formes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            A9 9AA
            A99 9AA
            A9A 9AA
            AA9 9AA
            AA99 9AA
            AA9A 9AA
    J'ai écrit une expression régulière mais qui ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reg_cp=/^[A-Z0-9]{2,4}\s[0-9A-Z]{3}$/;
    Le code commence par 2 ou 4 lettres ou chiffres plus un espace et se termine par 1 chiffre et deux lettres.

    Est-il possible d'écrire une expression régulière pour contrôler ces formats?

    Cordialement

  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
    Ton expression régulière fonctionne très bein et matche tous les exemples donnés.

    je pense que le souci est plutot au niveau de l'utilisation de la reg ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tabCP=new Array("A9 9AA","A99 9AA","A9A 9AA","AA9 9AA","AA99 9AA","AA9A 9AA");
    reg=/^[A-Z0-9]{2,4}\s[0-9A-Z]{3}$/;
     i = -1 ;
     
    while(tabCP[++i]){
        alert(reg.test(tabCP[i]))}
    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 éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Bonjour,

    Oui je pense aussi qu'elle est correcte cependant elle me renvoie une erreur et je l'ai testé sur un site de test des regex et là aussi on me dit qu'elle ne fonctionne pas.

    je cherche donc...

  4. #4
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    A tout hasard, essaye de supprimer (ou au moins de prendre en compte) les espaces en début de chaine... Si l'on en croit ton exemple, il y en a beaucoup !
    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

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    C'est bon...
    Ca fonctionne. Un petit souci ailleurs dans le code.

    Merci pour avoir certifié que mon expression fonctionne

  6. #6
    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
    viny ...
    vidi vici
    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 !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    On ne me l'avait jamais faite...

  8. #8
    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
    je n'en doute pas, le tout c'est de la faire à propos
    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 !

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Par défaut
    Salut.

    Non, cette expression régulière n'est pas correcte.

    Elle accepte bien les formats demandés, mais elle accepte quasiment tout sans distinction (et n'a donc pas plus d'intérêt qu'un wildcard /.*/).

    Par exemple toutes ces chaines sont fausses et devraient être rejetées, ce qui n'est pas le cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tabCP=new Array("AA AAA","AAA AAA","99 999","999 999","AAAA AAA","9999 999","99A9 A99");
    reg=/^[A-Z0-9]{2,4}\s[0-9A-Z]{3}$/;
     i = -1 ;
     
    while(tabCP[++i]){
        console.log(reg.test(tabCP[i]))}

    L'expression juste qui décrit réellement le langage que tu as spécifié est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reg = /[A-Z][A-Z]?\d[A-Z\d]? \d[A-Z]{2}/;

  10. #10
    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


    quelles sont selon toi les expressions fausses dans ta liste ???

    la demande est :
    Le code commence par 2 ou 4 lettres ou chiffres plus un espace et se termine par 1 chiffre et deux lettres.
    manque juste le chiffre en debut du trio de fin
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[A-Z0-9]{2,4}\s\d[A-Z]{2}$/
    http://jsfiddle.net/JXg6v/1/
    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 !

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Par défaut
    SpaceFrog :

    Le code commence par 2 ou 4 lettres ou chiffres
    La description donnée juste au dessus spécifie des règles beaucoup plus strictes (et wikipedia aussi http://en.wikipedia.org/wiki/Postcod...dom#Validation ) :

    1 - Le premier caractère est toujours alphabétique
    2 - Il peut éventuellement y avoir un second caractère alphabétique
    3 - Le caractère qui suis est toujours numérique
    4 - Le dernier caractère est facultatif et alphanumérique

    et se termine par 1 chiffre et deux lettres.
    L'expression ne valide aucunement que le premier caractère est un chiffre et que les deux qui suivent sont alphabétiques. La seule chose qui est vérifié c'est que ce sont trois caractères alphanumériques.

  12. #12
    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
    la demande exprimée est
    Le code commence par 2 ou 4 lettres ou chiffres plus un espace et se termine par 1 chiffre et deux lettres.
    http://jsfiddle.net/JXg6v/1/

    Si il se plante sur les formats des codes postaux ...
    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 !

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Par défaut
    Bah moi je fais la lecture suivante de la demande :

    Les codes postaux en Angleterre peuvent avoir les formes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            A9 9AA
            A99 9AA
            A9A 9AA
            AA9 9AA
            AA99 9AA
            AA9A 9AA
    La phrase qui suit est juste une vulgarisation qui ne fais pas foi.

  14. #14
    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
    ben si tu prends sa liste comme étant exhaustive...
    la reg devrait alors être :
    mais en partant du principe que A et 9 sont des jokers pour l'aplha et le num ...
    on retombe bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[A-Z]{1,2}\d[A-Z0-9]?\s\d[A-Z]{2}$


    Tout cela juste pour dire qu'a question précise, réponse précise
    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 !

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Par défaut
    Je crois qu'on va arrêter là car cela devient stérile.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Merci TheGwy pour ton aide !

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

Discussions similaires

  1. Aide pour écriture dans un fichier
    Par tbr67fr dans le forum Général Python
    Réponses: 17
    Dernier message: 28/04/2011, 17h11
  2. aide sur écriture d'une requète
    Par awalter1 dans le forum SQL
    Réponses: 3
    Dernier message: 23/11/2010, 14h28
  3. Réponses: 0
    Dernier message: 03/09/2009, 16h59
  4. Aide pour écriture de fichiers
    Par whorian dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/08/2009, 21h23
  5. Aide pour écriture de conditions
    Par bidule86 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2009, 12h15

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