Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Les REGEX

RegEx : Vérifier un email en JavaScript et PHP avec les Regex

Temps de lecture estimé : 8 minutes
Accueil PHP 8 RegEx : Vérifier un email en JavaScript et PHP avec les Regex

Il y a des sujets que l’on repousse toujours un peu. Les expressions régulières, ou regex, font clairement partie de cette catégorie. Vous en avez sûrement déjà vu passer une sous la forme d’une suite de caractères incompréhensibles, et vous vous êtes dit que c’était une langue secrète réservée aux développeurs experts. Pourtant, derrière cette apparence un peu froide, les regex sont de véritables alliées, surtout quand il s’agit de vérifier un mail, valider un mail côté client en JavaScript ou vérifier un mail côté serveur en PHP.

  • Comprendre enfin comment fonctionnent les regex pour vérifier un email avec une approche simple et efficace.
  • Savoir valider une adresse mail correctement en JavaScript et en PHP, avec des exemples concrets qui permettent d’appliquer rapidement les bonnes pratiques.
  • Gagner en confiance dans la création de formulaires fiables et professionnels, en évitant les erreurs fréquentes et les validations trop strictes ou inefficaces.

Dans ce guide, nous allons tout reprendre calmement. Vous pouvez être totalement débutant, cela n’a aucune importance. Nous allons expliquer ce qu’est réellement une regex, pourquoi elle est utile pour la vérification d’une adresse mail, comment s’en servir dans vos formulaires, et surtout comment éviter les erreurs classiques. Le but est que vous soyez à l’aise avec ce sujet à la fin de ce tutoriel.

Comprendre d’abord ce qu’est une regex avant de vérifier un mail

Avant de plonger dans le code, il faut poser une base solide. Une regex, ou expression régulière, est simplement une façon d’écrire un modèle de texte que l’on souhaite reconnaître. C’est comme si vous expliquiez à l’ordinateur : je veux uniquement des textes qui respectent cette forme précise. Cela peut servir pour vérifier un mot de passe, un numéro de téléphone, ou bien sûr pour vérifier un mail.

Si vous débuter complètement et que vous souhaitez apprendre les RegEx : Regex pour débutant : comprendre ces “expressions bizarres”

Quand on parle de vérifier mail ou valider mail, on ne parle pas de vérifier si l’adresse existe réellement dans la vraie vie. On parle seulement de vérifier si elle respecte une structure correcte. Par exemple, une adresse comme test@gmail est incorrecte, car il manque le .com. Une adresse comme salut@.com n’est pas valide non plus, car il manque un nom de domaine avant le point.

Regex mail - Vérifier et valider une adresse mail

Une adresse email classique doit donc respecter quelques règles simples. Il doit y avoir une partie avant l’arobase, un arobase obligatoire, puis un nom de domaine, et enfin une extension comme .fr, .com, .org, etc. La regex sert justement à vérifier que tout cela est bien respecté.

Et si on commençait déjà par le HTML ?

Avant même de parler de JavaScript ou de PHP, sachez qu’il existe déjà un premier niveau de vérification directement en HTML grâce au fameux champ :

<input type="email">.

C’est simple, rapide à mettre en place et cela permet de filtrer automatiquement certaines erreurs très basiques comme l’absence d’arobase ou le manque de structure minimale.

<form>
    <input type="email" name="email" placeholder="Votre email" required>
    <button type="submit">Envoyer</button>
</form>

Avec ce simple type email, le navigateur va déjà tenter de valider mail avant d’envoyer le formulaire. Par exemple, une chaîne comme test sera refusée. C’est plutôt pratique pour une première couche de validation. Certains navigateurs affichent même un message d’erreur automatique très propre sans que vous ayez besoin d’écrire une seule ligne de script. Par contre,  bonjour@gmail sera accepté … d’ou le besoin de renforcer la protection !

Il faut vraiment rester prudent. Cette validation HTML n’est ni parfaite ni suffisante. Chaque navigateur interprète la norme un peu différemment. Certains accepteront des adresses étranges mais techniquement valides selon les standards, tandis que d’autres rejetteront des adresses pourtant correctes. Et surtout, comme pour JavaScript, elle peut être contournée très facilement en désactivant le contrôle ou en envoyant la requête autrement que via le formulaire classique.

Alors oui, HTML peut aider à vérifier un mail rapidement et améliorer l’expérience utilisateur. Mais si vous voulez une validation sérieuse, fiable et sécurisée, ce champ <input type="email"> ne doit être qu’un bonus, jamais la seule protection.

Première approche simple : vérifier un mail en JavaScript

Commençons avec JavaScript, car c’est souvent la première étape dans un formulaire. JavaScript permet de valider un mail directement dans le navigateur, avant même d’envoyer les données au serveur. C’est pratique pour l’utilisateur, car il reçoit un message immédiatement si son adresse n’est pas correcte.

Voici un premier exemple clair et complet. Imaginons un petit formulaire tout simple avec un champ email et un bouton.

<form id="form">
    <input type="text" id="email" placeholder="Entrez votre email">
    <button type="submit">Valider</button>
</form>

<p id="message"></p>

<script>
    const form = document.getElementById("form");
    const emailInput = document.getElementById("email");
    const message = document.getElementById("message");

    form.addEventListener("submit", function(e) {
        e.preventDefault();

        const email = emailInput.value;

        const regexMail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

        if(regexMail.test(email)) {
            message.textContent = "Adresse email valide.";
            message.style.color = "green";
        } else {
            message.textContent = "Adresse email invalide, veuillez vérifier.";
            message.style.color = "red";
        }
    });
</script>

Prenons le temps de comprendre ce que nous venons de faire, car c’est ici que tout devient intéressant. La ligne importante est évidemment la regex elle-même. Elle peut paraître étrange au premier regard, mais décortiquons-la en douceur.

const regexMail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

Le symbole ^ signifie que l’on commence au début de la chaîne. Le symbole $ indique la fin. Cela permet de s’assurer que tout ce que l’on écrit entre les deux correspond exactement à l’adresse. La partie [^\s@]+ signifie que l’on accepte un ou plusieurs caractères qui ne sont ni des espaces ni un arobase. Ensuite vient le fameux arobase obligatoire. Puis on retrouve le même principe pour la partie domaine. Et enfin \. correspond au point qui précède l’extension, suivi de caractères pour l’extension.

Cette regex n’est pas la plus stricte du monde, mais elle fonctionne très bien pour une validation de base et surtout compréhensible pour débuter. Cela permet déjà de vérifier mail et d’éviter les adresses absurdes.

Sur un site que je développais, je n’avais pas encore mis de regex pour vérifier l’adresse mail. J’avais simplement un champ texte classique. Résultat, un petit malin a réussi à s’inscrire avec une “adresse email” qui ressemblait à ceci : pouet-pouet. Rien d’autre. Aucun arobase, aucun domaine, rien. Cela a ensuite posé problème pour envoyer les mails d’inscription, de récupération de mot de passe, et j’ai passé plus de temps à nettoyer la base qu’à coder.

Moralité, même si cela paraît parfois fastidieux, prendre le temps de valider mail correctement vous évitera beaucoup de soucis plus tard.

Allons plus loin avec une regex mail un peu plus sérieuse en JavaScript

Vous l’avez compris, la première regex est simple et efficace, mais certaines personnes aiment sécuriser davantage. Par exemple, certains veulent s’assurer que l’extension comporte au moins deux lettres et pas une seule. D’autres souhaitent empêcher certains caractères spéciaux.

Voici une autre regex mail souvent utilisée pour vérifier mail plus sérieusement.

const regexMail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

Cette fois, on précise davantage ce que l’on accepte. Avant l’arobase, seules les lettres, chiffres, points, tirets et underscores sont autorisés. Après l’arobase, le domaine accepte des lettres, chiffres, points et tirets. Enfin, l’extension doit faire au minimum deux caractères alphabétiques.

Cela permet de valider mail de manière plus propre et éviter un grand nombre de fausses adresses. On est donc déjà dans une approche plus sérieuse de la vérification.

Important : JavaScript ne suffit pas pour valider mail

Même si JavaScript est très pratique pour vérifier mail côté client, il a une limite majeure. L’utilisateur peut facilement le désactiver, le contourner ou manipuler les données. Il ne faut donc jamais se contenter uniquement de JavaScript. Il doit être utilisé pour le confort utilisateur, mais la véritable vérification doit aussi être faite côté serveur, par exemple en PHP.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Pour aller plus loin : Tester et valider les entrées d’un formulaire en javascript

Et c’est exactement ce que nous allons voir dans la suite de ce tutoriel : comment valider mail et vérifier mail proprement avec PHP, comprendre la fonction filter_var, voir une regex plus complète en PHP, puis découvrir les bonnes pratiques pour éviter les pièges.

Vérifier un mail en PHP : indispensable pour sécuriser vos formulaires

Si JavaScript est là pour le confort de l’utilisateur, PHP est là pour la sécurité. Quand vous développez un site, tout ce qui vient du client ne doit jamais être considéré comme fiable. Même si vous avez mis une regex mail parfaite côté JavaScript, quelqu’un peut modifier le formulaire, tricher avec un outil comme Postman ou désactiver le script. C’est pourquoi vérifier mail en PHP est obligatoire si vous voulez éviter les adresses absurdes.

La bonne nouvelle, c’est que PHP propose déjà un outil fantastique pour valider mail sans avoir besoin d’écrire une regex compliquée. Il s’agit de la fonction filter_var. Elle est à la fois simple, efficace et lisible, ce qui est parfait quand on veut coder proprement sans se casser la tête.

Voici un exemple clair et concret.

<?php

if(isset($_POST['email'])) {

    $email = $_POST['email'];

    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Adresse email valide.";
    } else {
        echo "Adresse email invalide, veuillez vérifier.";
    }
}

Le principe est d’une simplicité étonnante. La fonction filter_var prend une valeur et applique un filtre dessus. Ici, nous utilisons FILTER_VALIDATE_EMAIL, qui vérifie la structure de l’adresse. Si c’est correct, cela renvoie vrai, sinon faux. Cela permet donc de valider mail très proprement, sans se perdre dans une regex interminable.

Certains développeurs débutants ont tendance à vouloir absolument utiliser une regex mail maison, persuadés que c’est plus “pro”. Mais croyez-moi, si PHP vous fournit une solution native, testée et fiable, il serait dommage de s’en priver.

Utiliser une regex mail en PHP : quand et comment le faire

Cela dit, il existe aussi des cas où vous aurez envie d’utiliser une regex mail personnalisée. Peut-être que vous voulez imposer certaines règles spécifiques, ou bien apprendre pour comprendre plus en profondeur. Dans ce cas, PHP permet également d’utiliser des expressions régulières avec la fonction preg_match.

Voici un exemple concret de regex mail en PHP.

<?php

if(isset($_POST['email'])) {

    $email = $_POST['email'];

    $regexMail = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";

    if(preg_match($regexMail, $email)) {
        echo "Email valide.";
    } else {
        echo "Email invalide.";
    }
}

Si vous observez bien, cette regex ressemble beaucoup à celle que nous avons utilisée en JavaScript. Elle impose une structure claire et vérifie que l’adresse respecte un minimum de cohérence. Encore une fois, elle ne garantit pas que l’adresse existe réellement, mais elle permet déjà de vérifier mail correctement.

Pour bien comprendre ce que fait preg_match, imaginez que vous demandiez à PHP : regarde ce texte et dis-moi s’il correspond au modèle que je t’ai donné. S’il correspond, vous pouvez valider mail. S’il ne correspond pas, vous refusez.

Les limites des regex mail et la réalité du terrain

À ce stade, il est important d’être honnête avec vous. Beaucoup de développeurs débutants pensent qu’il existe une regex mail “parfaite” qui pourrait vérifier absolument tous les cas possibles. En théorie, c’est vrai que la norme officielle des emails est extrêmement complexe. On peut techniquement avoir des emails avec des caractères bizarres, des formes que l’on voit rarement, et il existe des regex monstrueuses qui essayent de tout couvrir.

Mais dans la pratique, ce n’est pas utile pour la majorité des sites. Pour un formulaire classique, une regex mail comme celles vues plus haut suffit largement. Le but n’est pas de couvrir tous les cas extraterrestres, mais d’éviter les entrées absurdes et grossières. Si un email comme toto@@gmail..com passe, ce n’est pas bon. Si quelqu’un essaye sans arobase, ce n’est pas bon non plus. Tant que cela est bloqué, vous avez gagné.

Sur un projet, un client voulait une regex tellement stricte que même certaines vraies adresses emails d’utilisateurs légitimes étaient refusées. Résultat, au lieu de rassurer, cela a frustré ses visiteurs, qui écrivaient “votre site ne marche pas”. Comme quoi, vouloir surcontrôler peut créer l’effet inverse.

Vérifier mail ne suffit pas : la validation réelle

Il faut aussi distinguer deux choses essentielles. Vérifier mail avec une regex mail consiste uniquement à contrôler la forme. Cela ne garantit pas que l’adresse appartient bien à quelqu’un. Pour cela, la seule vraie validation reste l’email de confirmation. Vous savez, celui qui dit “cliquez sur ce lien pour activer votre compte”. C’est la seule façon de prouver que la personne possède bien la boîte mail.

Donc, retenez ceci. La regex mail sert à filtrer les erreurs grossières. PHP sert à sécuriser la validation. Et l’email de confirmation sert à vérifier que l’adresse existe réellement. Ces trois étapes fonctionnent ensemble.

Quelques conseils simples pour bien valider mail dans vos projets

Si vous débutez, le meilleur conseil est de commencer simple. N’essayez pas de coder une regex mail gigantesque. Utilisez d’abord filter_var en PHP. Ajoutez une regex basique en JavaScript pour guider l’utilisateur. Et surtout, affichez des messages clairs. Une validation n’est utile que si elle explique à l’utilisateur ce qu’il doit corriger.

Évitez également de rejeter trop d’emails. Certaines adresses professionnelles ou étrangères ont des extensions moins courantes, mais elles sont tout à fait valides. Laissez un peu de souplesse.

Enfin, testez toujours vos formulaires avec de vrais exemples, des mauvais emails, des erreurs typiques, et vérifiez comment votre site réagit. C’est souvent là que l’on apprend le plus.


Si vous êtes arrivé jusqu’ici, vous pouvez être fier de vous. Vous avez traversé ce sujet qui faisait parfois peur, et vous avez maintenant une vision claire de ce qu’est une regex mail, de la manière de vérifier un mail en JavaScript, de valider un mail en PHP, et surtout de comprendre pourquoi cela est si important dans un site web moderne.

Le plus important à retenir n’est pas seulement la technique, mais l’état d’esprit. Vous savez désormais qu’une regex n’est pas un monstre, mais un simple outil pour structurer le texte. Vous avez compris que JavaScript et PHP travaillent ensemble, chacun à son niveau. Et vous savez aussi qu’un bon développeur ne cherche pas la solution la plus compliquée, mais la plus adaptée.

Alors, la prochaine fois que vous mettrez en place un formulaire d’inscription, vous penserez peut-être à cette fameuse histoire de l’utilisateur inscrit avec “pouet-pouet” comme email. Et vous sourirez un peu en activant votre validation. Parce que cette fois, vous saurez exactement ce que vous faites. Et c’est probablement cela, la vraie victoire.