Valider les adresses e-mail à l’aide de jQuery et regex

Je ne sais pas trop comment faire ça. Je dois valider les adresses e-mail en utilisant regex avec quelque chose comme ceci:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[AZ]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum) 

Ensuite, je dois l’exécuter dans une fonction jQuery comme ceci:

 $j("#fld_emailaddress").live('change',function() { var emailaddress = $j("#fld_emailaddress").val(); // validation here? if(emailaddress){} // end validation $j.ajax({ type: "POST", url: "../ff-admin/ff-register/ff-user-check.php", data: "fld_emailaddress="+ emailaddress, success: function(msg) { if(msg == 'OK') { $j("#fld_username").attr('disabled',false); $j("#fld_password").attr('disabled',false); $j("#cmd_register_submit").attr('disabled',false); $j("#fld_emailaddress").removeClass('object_error'); // if necessary $j("#fld_emailaddress").addClass("object_ok"); $j('#email_ac').html('   Your email '+ emailaddress+' is OK. '); } else { $j("#fld_username").attr('disabled',true); $j("#fld_password").attr('disabled',true); $j("#cmd_register_submit").attr('disabled',true); $j("#fld_emailaddress").removeClass('object_ok'); // if necessary $j("#fld_emailaddress").addClass("object_error"); $j('#email_ac').html(msg); } } }); }); 

Où va la validation et quelle est l’expression?

    MISES À JOUR


     function isValidEmailAddress(emailAddress) { var pattern = /^([az\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[az\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; return pattern.test(emailAddress); } 

     if( !isValidEmailAddress( emailaddress ) ) { /* do stuff here */ } 
    • NOTE: gardez à l’esprit qu’il n’existe pas de vérification à 100% par email de regex !

    Ceci est ma solution:

     function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i); // alert( pattern.test(emailAddress) ); return pattern.test(emailAddress); }; 

    Trouvé que RegExp ici: http://mdskinner.com/code/email-regex-and-validation-jquery

     $(document).ready(function() { $('#emailid').focusout(function(){ $('#emailid').filter(function(){ var emil=$('#emailid').val(); var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; if( !emailReg.test( emil ) ) { alert('Please enter valid email'); } else { alert('Thank you for your valid email'); } }) }); }); 

    Lolz c’est beaucoup mieux

      function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/); return pattern.test(emailAddress); }; 

    Je vous recommande d’utiliser le plugin jQuery pour Verimail.js .

    Pourquoi?

    • Validation IANA TLD
    • Validation de la syntaxe (selon RFC 822)
    • Suggestion d’orthographe pour les domaines et domaines de messagerie les plus courants
    • Refuser les domaines de compte de messagerie temporaires tels que mailinator.com

    Comment?

    Incluez verimail.jquery.js sur votre site et utilisez la fonction:

     $("input#email-address").verimail({ messageElement: "p#status-message" }); 

    Si vous avez un formulaire et que vous souhaitez valider le courrier électronique sur submit, vous pouvez utiliser la fonction getVerimailStatus:

     if($("input#email-address").getVerimailStatus() < 0){ // Invalid email }else{ // Valid email } 

    Javascript:

     var pattern = new RegExp("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); var result = pattern .test(str); 

    Le regex n’est pas autorisé pour:

     [email protected] [email protected].. 

    Permit pour:

     [email protected] [email protected] 

    Source: http://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/

    Nous pouvons aussi utiliser une expression régulière (/^([\w.-]+)@([\w- de ++)((.(\w){2,3})+)$/i) pour valider l’adresse e-mail le format est correct ou non.

     var emailRegex = new RegExp(/^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$/i); var valid = emailRegex.test(emailAddress); if (!valid) { alert("Invalid e-mail address"); return false; } else return true; 

    Essaye ça

     function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/); return pattern.test(emailAddress); }; 

    vous pouvez utiliser cette fonction

      var validateEmail = function (email) { var pattern = /^([az\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[az\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; if (pattern.test(email)) { return true; } else { return false; } };