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 :

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 203
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 203
    Par défaut 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
    $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
    $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
    472
    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 : 472
    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 203
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 203
    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 754
    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 754
    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...

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, 17h08
  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, 17h24
  3. Utilisation de Regex pour regrouper des emails
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/02/2008, 17h51
  4. Réponses: 3
    Dernier message: 16/07/2007, 20h41
  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, 14h47

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