function validateEmail(email) {
var re =/^[a-z_A-Z\-0-9\.\*\#\$\!\~\%\^\&\-\+\?\|]+@+[a-zA-Z\-0-9]+(.com)$/;
return re.test(email);
}
Javascript电子邮件验证。功能正常但.com区分大小写(在这些功能中只接受小写)。我希望在.com中没有区分大小写。
答案 0 :(得分: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
在这种情况下:a-z和A-Z的双重检查是多余的。使用:
var re =/^[a-z_\-0-9\.\*\#\$\!\~\%\^\&\-\+\?\|]+@+[a-z\-0-9]+(.com)$/i;
答案 1 :(得分:1)
推荐的解决方案:
1)使用忽略案例标记i
,如下所示:/your regex/i
。然后,您还可以省略字符类中的大写字母。
其他可能性(不推荐):
2)将您的字符串转换为小写email.toLowerCase()
。您可以使用此字符删除字符类中的大写字母。
3)包括以下模式(\.[Cc][Oo][Mm])
而不是(.com)
- 它的功能太多了。
旁注:
您需要在com:(\.com)
之前转义点,否则它将匹配任意字符
答案 2 :(得分:0)
在进行验证之前,将电子邮件地址中的所有字符转换为小写。
答案 3 :(得分:0)
尝试此操作,因为电子邮件ID不区分大小写
return re.test(email.toLowerCase());