Javascript 正则表达式只是电子邮件的开始

Javascript 正则表达式只是电子邮件的开始,javascript,jquery,regex,email,Javascript,Jquery,Regex,Email,我只想验证电子邮件地址的开头。我将强制用户使用我的'@company.com'域,因此使用该域并不重要。这是我正在使用的正则表达式: var validateEmail = /^[A-Z0-9._%+-]$/ 我正在用警报测试它 alert(validateEmail.test([$(this).attr('value')])); 通过jQuery提取的值是用户输入。我测试的所有警报均为false。有人知道为什么吗?据我所知,这应该意味着:行首,字母数字字符集加上。%+-符号,然后是行尾。我

我只想验证电子邮件地址的开头。我将强制用户使用我的'@company.com'域,因此使用该域并不重要。这是我正在使用的正则表达式:

var validateEmail = /^[A-Z0-9._%+-]$/
我正在用警报测试它

alert(validateEmail.test([$(this).attr('value')]));

通过jQuery提取的值是用户输入。我测试的所有警报均为
false
。有人知道为什么吗?据我所知,这应该意味着:行首,字母数字字符集加上
。%+-符号,然后是行尾。我做错了什么?即使只是一个“a”也会提示为
false

您的正则表达式只匹配单个字符。您需要添加+符号或{min,max}来指定最小和最大长度

var validateEmail = /^[A-Z0-9._%+-]+$/;

您的正则表达式只匹配单个字符。您需要添加+符号或{min,max}来指定最小和最大长度

var validateEmail = /^[A-Z0-9._%+-]+$/;

正则表达式将只匹配集合中的单个字符,请添加一个
+
以匹配集合中的至少一个字符:

var validateEmail = /^[A-Z0-9._%+-]+$/;
您忽略了在regex对象中包含小写字符:

var validateEmail = /^[A-Za-z0-9._%+-]+$/;
或设置忽略大小写标志:


正则表达式将只匹配集合中的单个字符,请添加一个
+
以匹配集合中的至少一个字符:

var validateEmail = /^[A-Z0-9._%+-]+$/;
您忽略了在regex对象中包含小写字符:

var validateEmail = /^[A-Za-z0-9._%+-]+$/;
或设置忽略大小写标志:


你有很多问题

  • a
    失败,因为它是小写的,并且正则表达式区分大小写。您可以使用
    i
    选项忽略大小写
  • 大多数其他有效的电子邮件地址都会失败,因为正则表达式只允许1个字符。您可以在字符类
    […]
    之后使用
    +
    来允许一个或多个字符,或者
    *
    来允许0个或多个字符

var validateEmail=/^[A-Z0-9.z%+-]+$/i

您有多个问题

  • a
    失败,因为它是小写的,并且正则表达式区分大小写。您可以使用
    i
    选项忽略大小写
  • 大多数其他有效的电子邮件地址都会失败,因为正则表达式只允许1个字符。您可以在字符类
    […]
    之后使用
    +
    来允许一个或多个字符,或者
    *
    来允许0个或多个字符

var validateEmail=/^[A-Z0-9.z%+-]+$/i

看起来您只匹配了一个字符。它应该是
[…]+
$(this).val()
可能比
$(this)更容易阅读。attr('value')
看起来您只匹配了一个字符。它应该是
[…]+
$(this).val()
可能比
$(this).attr('value')
更容易阅读