Pattern proposé
^[^\s@]+@[^\s@]+\.[^\s@]+$
Ce que ça matche
alice@example.com
jean@test.org
Limites connues
- Vérifie uniquement le format général.
- Ne confirme pas que le domaine ou la boîte e-mail existent réellement.
Pattern proposé
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
Ce que ça matche
alice@example.com
jean.dupont+shop@test.co.uk
Limites connues
- Ne couvre pas l’intégralité de la spécification RFC.
- Doit être complété par une confirmation d’adresse ou une validation côté serveur.
Pattern proposé
^[^\s@]+@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$
Ce que ça matche
alice@mail.example.com
jean@example.co.uk
Limites connues
- Valide uniquement la structure générale de l’adresse.
Pattern proposé
^[A-Za-z0-9._%+-]+@gmail\.com$
Ce que ça matche
alice@gmail.com
bob@gmail.com
Limites connues
- Convient uniquement si les adresses Gmail sont explicitement requises.
Pattern proposé
^[A-Za-z0-9._%+-]+@company\.com$
Ce que ça matche
alice@company.com
support@company.com
Limites connues
- Le nom de domaine doit être adapté à votre organisation.
Pattern proposé
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
Ce que ça matche
alice@example.com
bob@test.org
Limites connues
- Peut également extraire des adresses dont la structure semble valide mais qui ne correspondent pas à de vraies boîtes e-mail.
Pattern proposé
^\s*[^\s@]+@[^\s@]+\.[^\s@]+(?:\s*,\s*[^\s@]+@[^\s@]+\.[^\s@]+)*\s*$
Ce que ça matche
alice@example.com, bob@test.org
Limites connues
- Fonctionne uniquement avec des listes séparées par des virgules.
Pattern proposé
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
Ce que ça matche
jean+shop@example.com
alice+newsletter@gmail.com
Limites connues
- Certains systèmes choisissent de normaliser ou limiter les alias pour des raisons métier.
Pattern proposé
(?<=@)[A-Za-z0-9.-]+\.[A-Za-z]{2,}
Ce que ça matche
example.com
mail.company.org
Limites connues
- Utilise un lookbehind : vérifiez la compatibilité avec votre moteur regex.
Pattern proposé
^[^\s@]+(?=@)
Limites connues
- Prévu pour une adresse e-mail par ligne.
Pattern proposé
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.org$
Ce que ça matche
team@example.org
support@test.org
Limites connues
- Remplacez .org par l’extension requise pour votre cas d’usage.
Pattern proposé
^[A-Za-z0-9._%+-]+@(?!gmail\.com$|yahoo\.com$|hotmail\.com$|outlook\.com$)[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
Ce que ça matche
alice@company.com
contact@example.org
Limites connues
- Exclut uniquement les fournisseurs présents dans le pattern.
Pattern proposé
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
Ce que ça matche
ventes@example.com
aide@test.org
ceo@company.com
Limites connues
- Peut également extraire des adresses dont la structure paraît valide mais qui ne sont pas réellement utilisables.
Pattern proposé
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
Ce que ça matche
alice@example.com
bob@test.org
Limites connues
- Le remplacement lui-même dépend du langage utilisé.
Pattern proposé
^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
Limites connues
- Refuse également des adresses parfaitement valides chez de nombreux fournisseurs.
Pattern proposé
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.(?:com|org|net)$
Ce que ça matche
alice@example.com
bob@test.org
Limites connues
- La liste doit être mise à jour régulièrement avec les nouveaux TLD.
Pourquoi la validation des e-mails est difficile
Les adresses e-mail semblent simples, mais leur syntaxe officielle est beaucoup plus flexible qu’on ne l’imagine.
Dans une application réelle, une regex pratique vérifie généralement la structure courante plutôt que toutes les adresses techniquement valides selon la RFC.
L’objectif est surtout de détecter les erreurs évidentes, pas de prouver que l’adresse existe ou reçoit réellement des messages.
Regex e-mail pratique ou conforme à la RFC
Les regex totalement conformes à la RFC sont souvent très longues, difficiles à lire et pénibles à maintenir.
Pour la plupart des formulaires, une regex pratique accompagnée d’une confirmation par e-mail est plus fiable et plus simple à comprendre.
N’utilisez une validation RFC stricte que si votre application doit réellement accepter tous les cas limites autorisés.
Ce qu’une regex e-mail peut valider
Une regex e-mail peut vérifier la présence d’une partie locale, du symbole @, d’un domaine et d’une extension.
Elle peut aussi limiter les caractères autorisés, imposer une longueur minimale pour le TLD ou refuser les espaces.
En revanche, elle ne peut pas confirmer les enregistrements DNS, l’existence de la boîte ou le fait que l’adresse appartient à l’utilisateur.
Alias e-mail et adressage avec plus
De nombreux fournisseurs acceptent les alias comme jean+shop@example.com.
Refuser le signe plus peut bloquer des utilisateurs légitimes, notamment sur Gmail et certains services utilisés par les développeurs.
Sauf besoin spécifique, une regex e-mail devrait généralement accepter ce type d’adressage.
Adresses e-mail internationales
Les systèmes e-mail modernes peuvent gérer les noms de domaine internationalisés et, dans certains cas, des parties locales non ASCII.
Beaucoup de regex simples se limitent volontairement aux adresses ASCII, car elles sont plus faciles à gérer de manière cohérente.
Si votre application vise des utilisateurs internationaux, testez soigneusement le comportement Unicode et envisagez une bibliothèque spécialisée.
Confirmer une adresse e-mail
La méthode la plus fiable pour vérifier une adresse e-mail consiste généralement à envoyer un message de confirmation.
Une regex peut réduire les fautes de saisie, mais seule la confirmation prouve que l’utilisateur peut accéder à la boîte.
Pour la création de compte, la réinitialisation de mot de passe ou les opérations sensibles, la confirmation est plus importante qu’une regex plus stricte.