Comment valider une adresse mail en JavaScript?

Bonjour :slightly_smiling_face:,

Je voudrais vérifier si l’entrée de l’utilisateur est une adresse e-mail en JavaScript, avant de l’envoyer à un serveur ou de tenter de lui envoyer un e-mail, afin d’éviter les erreurs de frappe. Comment puis-je réaliser cela ?

Vous pouvez utiliser les expressions régulières, essayez le code suivant:

Code HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<label for="email">Entrez une adresse e-mail: </label>
<input id="email"/>
<h2 id="res"></h2>

Code Javascript:

const validateEmail = (email) => {
  return email.match(
    /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  );
};

const validate = () => {
  const $res = $('#res');
  const email = $('#email').val();
  $res.text('');

  if (validateEmail(email)) {
    $res.text(email + ' est valide.').css('color', 'green');
  } else {
    $res.text(email + ' n\'est pas valide.').css('color', 'red');
  }
  return false;
}

$('#email').on('input', validate);

tu peux voir le résultat comme montré ci-dessous:

Je vous recommande de voir le tutoriel suivant:

RegEX:

/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/gm

Testez ce regex en ligne.