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 quasi finie mais incomplète


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur JAVA/PHP
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur JAVA/PHP

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 52
    Points
    52
    Par défaut Regexp quasi finie mais incomplète
    Bonjour,

    Pour les besoins d'un projet, j'ai besoin de pouvoir parser une liste d'adresse mail.

    USE case :

    mail@mail.com -> true
    mail@mail.com, -> true
    mail@mail.com; -> true
    mail@mail.com,mail@mail.com;mail@mail.com -> true
    mail@mail.commail@mail.com -> false
    mail@mail.com mail@mail.com; -> true
    ;mail@mail.com,mail@mail.com;mail@mail.com -> false

    Séparateur : [;,]

    Actuellement, elle ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var email = "[A-Za-z0-9\._%-]+@[A-Za-z0-9\.-]+\.[A-Za-z]{2,4}";
    var re = new RegExp('^'+email+'([;,]{1}\\n*'+email+')*[;,]?$');
    Ça marche dans tout les cas, excepté un qui est censé marcher : mon_mail@mail.com;dfg & mon_mail@mail.com;dfg qui me renvois true alors qu'il devrait pas...

    Use case concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mon_mail@mail.com;d           Renvois false
    mon_mail@mail.com;df          Renvois true
    mon_mail@mail.com;dfg        Renvois true
    mon_mail@mail.com;dfgs      Renvois true
    mon_mail@mail.com;dfgop    Renvois false
    J'ai l'impression qu'il considère que c'est la fin de l'adresse mail (si j'ai 2 à 4 caractères derrière le [,;], il est content, sinon non.)

    Du coup j'ai du mal à piger.

    Si quelqu'un à quelques secondes / minutes pour m'aider la dessus :-)

  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 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 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([A-Za-z0-9\._%-]+@[A-Za-z0-9\.-]+\.[A-Za-z]{2,4}($|[,; ]))+
    voire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(([A-Za-z0-9\._%-]+@[A-Za-z0-9\.-]+\.[A-Za-z]{2,4})($|[,; ]))+
    si tu veux capturer direct les adresses séparément ...
    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 du Club
    Homme Profil pro
    Développeur JAVA/PHP
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur JAVA/PHP

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 52
    Points
    52
    Par défaut
    J'ai le même problème avec ta regexp, elle laisse passer : moi@moi.com,sd & moi@moi.com;sd
    Alors qu'elle devrait craquer et renvoyer false.

    Merci pour ta réponse

  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 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    en rajoutant $ à la fin ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([A-Za-z0-9\._%-]+@[A-Za-z0-9\.-]+\.[A-Za-z]{2,4}($|[,; ]))+$
    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 !

Discussions similaires

  1. Deux vhosts quasi identiques, mais l'un ne redirige pas correctement.
    Par vmonteco dans le forum Langages serveur
    Réponses: 0
    Dernier message: 14/11/2014, 14h48
  2. 2048 bientôt fini, mais problème d'écouteurs
    Par gulux56 dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 30/04/2014, 15h51
  3. Projet fini mais certains utilisateurs ne peuvent l'ouvrir
    Par Benduroy dans le forum Général Java
    Réponses: 5
    Dernier message: 03/12/2011, 18h02
  4. Réponses: 4
    Dernier message: 29/01/2010, 10h42
  5. Réponses: 11
    Dernier message: 22/04/2008, 15h32

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