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 :

Améliorer un regex existant [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Améliorer un regex existant
    Bonjour à tous,

    J'ai ce regex qui fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!/^\d{6}[a-z]{2}\d{2}$/i.test(dmu))
    Je dois donc passer à test une chaine avec ce format :

    560912MK01

    Donc, 6 chiffres, deux lettres et deux chiffres.

    J'aurais voulu rendre le regex encore plus puissant en vérifiant en plus du format, les données entrées :

    Je devrais donc avoir :

    • Les deux premiers chiffres doivent former un nombre de 01 à 99
    • Les deux suivants : de 01 à 12
    • Les deux après : de 01 à 31
    • La première lettre : F ou M uniquement (peu importe la casse)
    • La lettre suivante : de A à Z (peut importe la casse)
    • Les deux derniers chiffres doivent former un nombre de 01 à 99


    Auriez-vous une idée ?

    Je vous en remercie d'avance.

    beegees

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^((0[1-9])|([1-9][0-9]))((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))[FM][A-Z]((0[1-9])|([1-9][0-9]))$
    faut juste se concentrer un peu sur les or et les parenthèses sinon en suivant à la lettre tes indications on arrive à une regex comme ça
    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 expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Un grand merci à toi Spaffey (je t'ai ajouté un point)

    Mais ça bug avec l'année 2000.

    bee

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\d[1-9]((0[1-9])|(1[0-2]))((0[1-9])|(1\d)|(2\d)|(3[0-1]))[FM][A-Z]\d[1-9]$

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par javatwister Voir le message
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\d[1-9]((0[1-9])|(1[0-2]))((0[1-9])|(1\d)|(2\d)|(3[0-1]))[FM][A-Z]\d[1-9]$
    Salut javatwister,

    Merci pour ton aide.

    Ta regex ne semble pas fonctionner

    J'ai adapté ma regex afin que je puisse contrôler mon numéro de patient en utilisant la date sur 4 positions (exemple 1987 et non plus 87) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^(19|20)((0[1-9])|([1-9][0-9]))((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))[FM][A-Z]((0[1-9])|([1-9][0-9]))$/i
    Cela semble fonctionner excepté avec l'année 2000 où ça bug...

    Auriez-vous une idée ?

    Un grand merci d'avance.

    beegees

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ben ma regexp marchait avec ton premier format en tout cas;

    après, je te rappelle que tu excluais l'année "00" en début de chaîne... donc pas 2000 non plus...

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

Discussions similaires

  1. [RegExp] Ajouter l'underscore dans un regex existant
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/03/2013, 20h36
  2. [RegEx] Amélioration de regex
    Par seb_perl dans le forum Langage
    Réponses: 0
    Dernier message: 03/12/2012, 15h35
  3. Améliorer une requete where not exists
    Par first racing dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/11/2010, 17h10
  4. Réponses: 7
    Dernier message: 20/10/2009, 03h03
  5. Regex : création de lien html s'il n'existe pas
    Par GregPeck dans le forum Langage
    Réponses: 3
    Dernier message: 22/11/2005, 00h21

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