regex - 使用 jQuery 和正则表达式验证电子邮件地址

标签 regex validation email email-validation

我不太确定如何做到这一点。我需要使用正则表达式来验证电子邮件地址,如下所示:

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

然后我需要在这样的 jQuery 函数中运行它:
$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('&nbsp;<img src="img/cool.png" align="absmiddle"> <font color="Green"> Your email <strong>'+ emailaddress+'</strong> is OK.</font>  ');
            } 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);
            }
        }
     });
});

验证在哪里,表达式是什么?

最佳答案

更新

  • http://so.lucafilosofi.com/jquery-validate-e-mail-address-regex/
  • 使用新的正则表达式
  • 添加了对 Address tags 的支持(+ 符号)

  • function isValidEmailAddress(emailAddress) {
        var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\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]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
        return pattern.test(emailAddress);
    }
    
    if( !isValidEmailAddress( emailaddress ) ) { /* do stuff here */ }
    
  • 注意: keep in mind that no 100% regex电子邮件检查存在!
  • 关于regex - 使用 jQuery 和正则表达式验证电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855865/

    相关文章:

    ruby - 转义 TextMate 的 $DIALOG 命令的 Ruby 字符串

    Java:如何编写模式的正则表达式?

    javascript - Joi 'when/is' 语法 - 如何检查类型?

    javax.activation.UnsupportedDataTypeException : no object DCH for MIME type multipart/mixed; boundary

    java - 数数没有。在java中使用正则表达式的单词

    Ruby - 解压不规则的二进制字符串

    HTML5 表单验证

    javascript - Javascript 验证不允许空格

    php - 为什么我需要一个电子邮件帐户才能在 ruby​​ 上发送邮件而在 php 上不需要这样的帐户?

    c# - ASP.NET 样板更改 EmailSettingNames