2010-10-19 4 views
1

J'utilise simple validation email js comme:problème avec la validation email dans Opera et Chrome

function validation(email) { 
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
    return reg.test(email); 
} 


function check(){ 
    if ($("#subemail").hasClass("bad")) { 
     var subemail = $("#subemail").val(); 
     if((subemail!=0)&&validation(subemail)) { 
      $("#subemail").css('background','transparent').css('color','#3b3b3b'); 
      $('.arrow').css('visibility','hidden'); 
     } 
     else { 
      $("#subemail").css('background','url(img/red.png)').css('color','white'); 
      $('.arrow').css('visibility','visible'); 
     } 
    } 
} 

tout fonctionne bien avec Firefox, mais en le faisant dans Chrome ou Opera, il retourne toujours faux

+3

Préparez-vous à être molesté pour utiliser une telle expression de test. :) – bzlm

+3

Au nom de tout le monde partout, je vous prie de ne pas utiliser cette expression régulière pour valider les adresses e-mail. Il compte des tonnes d'adresses valides comme non valides. Le plus évidemment, il n'autorise pas '+ 'dans la partie nom d'utilisateur. – VoteyDisciple

+2

Cela fait une bonne lecture pour quiconque pense même à valider les adresses e-mail: http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until -i.aspx – bot403

Répondre

0

Dans ce test :

if((subemail!=0)&&validation(subemail)) { 

Que voulez-vous dire en vérifiant la chaîne candidate par rapport à 0? Vouliez-vous dire:

if ((subemail != '') && validation(subemail)) { 

peut-être? (Le test est redondant de toute façon, car votre expression régulière insiste sur les chaînes non vides.)

Questions connexes