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

Langage PHP Discussion :

Vérifier une adresse email


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut Vérifier une adresse email
    Salut à tous,

    pour vérifier la syntaxe d'une adresse email, j'utilisais l'expression régulière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match( "#^[a-z0-9._-]+@[a-z0-9.-]{2,}\.[a-z]{2,4}$#i", $email );
    Mais avec l'arrivée des nom de domaine avec accents j'ai cherché à modifier mon expression pour accepter les accents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match( "#^[a-z0-9àáâãäåòóôõöøèéêëçìíîïùúûüÿñ._-]+@[a-z0-9àáâãäåòóôõöøèéêëçìíîïùúûüÿñ.-]{2,}\.[a-z]{2,4}$#i", $email );
    Sa fonctionne impeccablement mais je voulais savoir si il n'y avait pas une solution plus propre que de lister les caractères accentués dans la regex.
    Je me demande aussi si les accents sont aussi autorisés dans l'identifiant de l'email.
    Merci

  2. #2
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match( "#^\w|[.-]+@\w|[.-]{2,}\.[a-z]{2,4}$#i", $email );
    ?? ^^

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    slt,

    Alors moi j'utilisais ca :
    ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$
    mais je me suis rendu compte que ca n'obligeait pas à avoir un point après le @ et donc c'était pas totalement bon !

    J'ai trouvé ceci :

    ^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$
    et ca m'a l'air vraiment mieux, j'ai fait des essais, apparement tout est bon,
    Qu'est-ce que vous en pensez ?

    Pour infos, je sais pas si vous connaissez The Regex Coach mais c'est un petit logiciel sympa et gratuit pour tester ses expressions régulières.

    ++

  4. #4
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Italiasky, tu as un juste la derniere étoile à remplacer par un + et c'est bon. (dans ta premiere regex)

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    exact, ca fonctionne maintenant...

    Et c'est mieux celle-ci ou la 2eme que j'ai mis alors du coup ?

    La première ne prend pas en charge les _ dans le nom de domaine..

  6. #6
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    La 2eme n'a pas trop de sens tu échappe tout alors qu'il n'y a pas d'interet à le faire

    ^[a-zA-Z0-9]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9]+(\.[a-zA-Z0-9-_]+)*(\.[a-z]{2, 4})$

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    Comment ca Korko Fain ?
    Qu'est-ce que tu veux dire par là ?

  8. #8
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    le \-, le \_ n'ont pas raison d'etre échappés ^^ - et _ ne sont pas des métacaractères ^^

Discussions similaires

  1. Vérifier plus largement une adresse email dans un formulaire
    Par DJ Caësar 9114 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2009, 16h20
  2. Vérifier la validité d'une adresse email
    Par Tourix dans le forum Langage
    Réponses: 9
    Dernier message: 09/10/2006, 16h56
  3. [debutant][ereg] Vérifier une adresse email
    Par romuluslepunk dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 05/05/2006, 17h17
  4. (msn) validité d'une adresse email
    Par t26 dans le forum Messagerie instantanée
    Réponses: 2
    Dernier message: 10/09/2005, 13h05
  5. [langage] vérifier une adresse email
    Par GMI3 dans le forum Langage
    Réponses: 10
    Dernier message: 19/10/2003, 18h06

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