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 :

[regex] comment modifier un regex pour contrôler un email


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 185
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 185
    Par défaut [regex] comment modifier un regex pour contrôler un email
    Bonjour

    Je souhaite contrôller la partie d'un e-mail qui précède le @

    J'ai ceci

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase

    Mais je en souhaite pas que les ?!#%$ soit authorisés. J'aimerais juste authoriser les carcatère minuscule et masjuscule, le nombres, un point au plusieurs, un - ou un _ à condition que les point, -, _ ne se suivent pas.

    Je ne connais pas trop les regex et j'ai commencer par ca (mais ca ne fonctionne pas )

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $atom   = '[/^[A-Za-z0-9._-]+$/]';   // caractères autorisés avant l'arobase

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
    	//$atom   = '[/^[A-Za-z0-9._-]+$/]';   // caractères autorisés avant l'arobase
    	$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
     
    	$regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
    	'(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus mais
    									// séparés par des caractères autorisés avant l'arobase
    	'@' .                           // Suivis d'un arobase
    	'(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
    									// séparés par des points
    	$domain . '{2,63}$/i';          // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
     
            if(!preg_match($regex, $email))
    	{
    		$code = -2;
    		$message = "[".$code."] Le format de votre e-mail n'est pas valide";
    	}

  2. #2
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 464
    Par défaut
    Je ne réponds pas à la question posée, mais...
    Connais-tu la fonction filter_var utilisée avec la constante FILTER_VALIDATE_EMAIL qui vérifie pour nous la validité d'une adresse e-mail ?

    if (filter_var($adresseEmail, FILTER_VALIDATE_EMAIL) ) {...}

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 185
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 185
    Par défaut
    Hello,
    Ha oui c'est une bonne suggestion. Je vais voir ca. Merci

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 114
    Par défaut
    Hello,

    Je vous conseille cette lecture : https://corner.buka.sh/ensuring-prop...lse-positives/

    et celle-ci : https://github.com/FriendsOfSymfony/...le/issues/1923

    Et qu'est-ce qui permet d'assurer que ces mails sont délivrables ? La meilleure pratique consiste à utiliser une regex locale pour un retour immédiat, côté client et côté serveur, sur le formatage, suivi d'un appel asynchrone à une API de vérification pour obtenir une évaluation définitive de la délivrabilité et de la qualité de l'e-mail.

    Mais peut-être que je vais un peu trop loin...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. comment modifier le script pour zoommer avec un style.cursor?
    Par sebac dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/04/2010, 16h08
  2. Comment modifier la BDR pour un autre utilisateur, mais sans regedit ?
    Par Nicolas Coolman dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 23/11/2009, 16h24
  3. Utilisation de Regex pour regrouper des emails
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/02/2008, 16h51
  4. Réponses: 3
    Dernier message: 16/07/2007, 19h41
  5. Comment modifie une requete pour avoir des sommes?
    Par F@ce27 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2006, 13h47

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