我想验证电子邮件地址的开头。我将强制用户使用我的'@ company.com'域名,因此使用它并不重要。这是我正在使用的正则表达式:
var validateEmail = /^[A-Z0-9._%+-]$/
我正在通过提醒进行测试。
alert(validateEmail.test([$(this).attr('value')]));
通过jQuery提取的值是用户输入。我测试的所有内容都是false
。谁知道为什么?根据我的理解,这应该意味着:行的开头,字母数字的字符集加上. _ % + -
符号,然后是行尾。我究竟做错了什么?即使只是'a'警告false
。
答案 0 :(得分:2)
你的正则表达式只匹配单个字符。您需要添加+符号或{min,max}来指定最小和最大长度。
var validateEmail = /^[A-Z0-9._%+-]+$/;
答案 1 :(得分:1)
你的正则表达式只匹配你的套装中的一个角色,添加+
以匹配你的套装中的至少一个角色:
var validateEmail = /^[A-Z0-9._%+-]+$/;
你忽略了在你的正则表达式对象中加入小写字符:
var validateEmail = /^[A-Za-z0-9._%+-]+$/;
或设置 ignore-case 标志:
var validateEmail = /^[A-Z0-9._%+-]+$/i;
答案 2 :(得分:0)
您有多个问题。
a
失败,因为它是小写的,并且您的正则表达式区分大小写。您可以使用i
选项忽略套管。+
之后的[...]
来允许一个或多个字符,或*
允许0或更多字符。 var validateEmail = /^[A-Z0-9._%+-]+$/i;