正式表达只是电子邮件的开头

时间:2012-09-10 17:02:04

标签: javascript jquery regex email

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

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

我正在通过提醒进行测试。

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

通过jQuery提取的值是用户输入。我测试的所有内容都是false。谁知道为什么?根据我的理解,这应该意味着:行的开头,字母数字的字符集加上. _ % + -符号,然后是行尾。我究竟做错了什么?即使只是'a'警告false

3 个答案:

答案 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选项忽略套管。
  • 大多数其他有效的电子邮件地址都会失败,因为您的正则表达式只允许1个字符。您可以使用字符类+之后的[...]来允许一个或多个字符,或*允许0或更多字符。

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