.test 电子邮件过滤器在 jquery 1.4.4 上运行良好,而不是在 jquery 1.8.3 上运行不正常

.test for email filter work well on jquery 1.4.4 instead of on jquery 1.8.3 doesn't work

这是我在表单提交时过滤电子邮件的简单代码;

var email_filter = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(email_filter.test($('#email').val()))

在 jQuery 版本 1.4.4 上效果很好,但在 1.8.3 上结果变为;

say true on;  email@domain.e and email@domain.esse 
say false on; email@domain.es and email@dom etc..

如果代码相同,为什么在 1.8.3 上会失败,我该如何解决?

我不认为它 jQuery 有问题,因为你的代码似乎是纯粹的 javascript 代码,除了获取输入字段值的部分,并确保尝试使用以下代码:

function isEmailValid(value)
 {    
    is_email = value.match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)!=null      
    return is_email;
}

// Test without jQuery
if( isEmailValid(document.getElementById("email").value) ){
   // Valid
}else{
   // Not Valid
}

// Test with jQuery
if( isEmailValid($("#email").val()) ){
   // Valid
}else{
   // Not Valid
}