Javascript电子邮件正则表达式匹配

时间:2014-02-19 13:22:34

标签: javascript regex

请参阅下面的Javascript代码。正在检查电子邮件模式的else if块不允许任何电子邮件ID。 match()函数返回什么?请帮忙。

使用过的test()

空场:工作正常 wron mail id:工作正常 正确的电子邮件ID:无法正常工作

var pattern = new RegExp("/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/");
   if(!accountantEmail){
       $("#infoTextMsg").hide();
       $("#accountantEmailNoDataErr").show();
       $("#accountantEmailInvalidFormat").hide();
       $("#accountant_email").focus();
       return false;
   }
   else if(!(pattern.test(accountantEmail))){
       $("#accountantEmailInvalidFormat").show();
       $("#infoTextMsg").hide();
       $("#accountantEmailNoDataErr").hide();
       $("#accountant_email").focus();
       return false;
   }

3 个答案:

答案 0 :(得分:0)

使用正则表达式可能是最好的方法。这是一个例子(live demo):

function validateEmail(email) 
{ 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
} 

但请记住,不应该只依赖JavaScript验证。可以轻松禁用JavaScript。这也应该在服务器端验证。

答案 1 :(得分:0)

Javascript match返回包含匹配项的数组。

这是我使用的正则表达式:

var pattern = "[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}";

if(!(accountantEmail.match(pattern))) {
    return false;
}

答案 2 :(得分:0)

对于validation方案,您应该使用RegExp#test函数。

var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

if (!pattern.test(accountantEmail)) {
    $("#accountantEmailInvalidFormat").show();
    $("#infoTextMsg").hide();
    $("#accountantEmailNoDataErr").hide();
    $("#accountant_email").focus();
    return false;
}

如其他帖子所评论,match功能用于群组捕获。

另请注意,您在pattern上指定了/。如果您将RegExp指定为字符串,则无需执行此操作。