Image de l'article Valider une adresse email avec javascript

Valider une adresse email avec javascript

Plutôt que d'utiliser une expression régulière, j'ai préféré utiliser la fonction lastIndexOf et faire quelques vérifications.


function EmailValidate(aStr){
	var s = aStr.trim();
	var arobase = s.lastIndexOf("@");
	var point = s.lastIndexOf(".");
	return (arobase > 0 && arobase < point - 1 && point < s.length - 1 && arobase > s.indexOf('..') && !/\s/g.test(s));
}

La fonction cherche le dernier arobase et le dernier point, elle effectue ensuite une courte liste de vérification :

Quelques exemples de validation d'emails


EmailValidate(' test@test.fr');
// true
EmailValidate('te.st@test.fr');
// true
EmailValidate('te.st@te.st.fr');
// true
EmailValidate('te+st@test.fr');
// true
EmailValidate('üñîçøðé@test.fr');
// true
EmailValidate('#!$%&\'*+-/=?^_`{}|~@test.fr');
// true
EmailValidate('test.fr');
// false
EmailValidate('@test.fr');
// false
EmailValidate('test@.fr');
// false
EmailValidate('test@.test.fr');
// false
EmailValidate('test@test..fr');
// false

Limitations

Cette fonction est très simple et si elle validera la majorité des adresses, elle ne validera pas certain cas pourtant existant :

À l'inverse elle validera des cas qui ne le devraient pas l'être (ça fera l'objet d'une mise à jour) :

A vous de l'adapter selon vos besoins. L'idée est avant tout d'aider les utilisateurs à corriger une faute de frappes. Pour une véritable validation il n'existe qu'un moyen fiable : envoyer un email de test.

 

Image Viewer