-3
function validateEmail(email) {
var re =/^[a-z_A-Z\-0-9\.\*\#\$\!\~\%\^\&\-\+\?\|]+@+[a-zA-Z\-0-9]+(.com)$/;  
return re.test(email); 
}

Javascript 电子邮件验证。功能正常,但 .com 区分大小写(这些功能只接受小写字母)。我想在 .com 中不区分大小写。

4

4 回答 4

2

在 var re 之后添加“i”:

var re =/^[a-z_A-Z\-0-9\.\*\#\$\!\~\%\^\&\-\+\?\|]+@+[a-zA-Z\-0-9]+(.com)$/i; 

请参阅:https ://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/RegExp

在这种情况下:重复检查 az AND AZ 是多余的。利用:

var re =/^[a-z_\-0-9\.\*\#\$\!\~\%\^\&\-\+\?\|]+@+[a-z\-0-9]+(.com)$/i; 
于 2013-05-22T09:42:55.693 回答
1

推荐解决方案:

1) 使用忽略大小写标志i,如下所示:/your regex/i. 然后,您也可以在字符类中省略大写字母。

其他可能性(虽然不推荐):

2)将您的字符串转换为小写email.toLowerCase()。您可以使用这个删除字符类中的大写字母。

3) 包括以下模式(\.[Cc][Oo][Mm]),而不是(.com)- 它的功能过于冗长。

边注:

您需要在 com: 之前转义点,(\.com)否则它将匹配任意字符

于 2013-05-22T09:43:45.583 回答
0

在进行验证之前将电子邮件地址中的所有字符转换为小写。

于 2013-05-22T09:37:29.990 回答
0

试试这个,因为电子邮件 ID 不区分大小写

    return re.test(email.toLowerCase()); 
于 2013-05-22T09:41:04.490 回答