via ce code, je voudrais comprendre si une adresse électronique contient le domaine contenu dans un tableau, mais la fonction renvoie toujours -1
3 Réponses :
Ceci échoue parce que vous recherchez quelque chose (une adresse e-mail) dans un tableau qui ne le contient pas (votre tableau ne contient que des domaines).
Donc en réalité, il semble que vous souhaitiez vérifier Pas l'e-mail complet mais juste la partie de domaine. p>
afin que vous puissiez faire: p> FIDDLE . P> Si vous trouvez la gymnastique Regexp un peu illisible, vous pouvez plutôt faire: P> let email_domain = ele.val().split('@')[1];
if (domains.filter(dmn => dmn == email_domain).length) {
//OK...
}
Merci, mais j'ai résolu avec ele.val (). Split ('@') [1]
Vous pouvez essayer avec ce lien
code HTML: p>
var ele =jQuery('#email');
console.log( 'Email : ' + ele.val().split('@')[1] );
var emailarr = ["gmail.com", "live.it", "email.it", "email.com", "hotmail.it", "yahoo.it", "tiscali.it", "alice.it", "icloud.com", "outlook.com", "outlook.it", "inwind.it", "libero.it", "me.com", "mail.com", "virgilio.it", "hotmail.com", "msn.com", "ymail.com", "protonmail.com", "fastwebnet.it" , "aruba.it"];
console.log( 'Index : ' + emailarr.indexOf(ele.val().split('@')[1]) );
if(jQuery.inArray(ele.val().split('@')[1], emailarr) !== -1)
{
ele.removeClass('error').addClass('normal');
}
else
{
jval2.errors = true;
ele.removeClass('normal').addClass('error');
}
Votre code vérifie l'ensemble de l'e-mail, pas seulement du domaine. Ainsi, l'ajout de la vérification suivante doit corriger le bogue;
if (jQuery.inArray(ele.val().substring(ele.val().indexOf('@') + 1), emailarr) !== -1) {
ele.removeClass('error').addClass('normal');
}
else {
jval2.errors = true;
ele.removeClass('normal').addClass('error');
}
Parce que
'dasdas@gmail.co ' code> (etc) n'est pas dans votre tableau.Bien "dasdas@gmail.com" est différent de "gmail.com". Vous ne devez tester que le domaine et non l'e-mail complet.
Et index de même?
Avec cela, il fonctionne ele.val (). Split ('@') [1], merci =)
Dupliqué possible de Validation de l'e-mail JavaScript de domaines spécifiques
J'ai juste besoin si un courrier électronique contient un domaine spécifique, pas une regex pour vérifier si un e-mail est un courrier électronique.