轻量级电子邮件地址正则表达式

时间:2014-04-08 11:27:14

标签: javascript regex

我目前正在使用以下正则表达式来测试电子邮件地址是否有效:

/[0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}/

对于电子邮件地址的最后一部分使用@ -sign的大多数电子邮件地址执行程序都可以正常工作,例如:email @ address.co @m将提供有效的电子邮件地址结果

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

只需将^添加到开头,将$添加到结尾:

/^[0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}$/

这可确保字符串必须以第一个匹配开头,必须以最后一个匹配结束。

email@address.co@m匹配email@address.co,因为这些未设置。

答案 1 :(得分:1)

试试此代码

var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if(atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
    alert("Invalid Email Id");
    flag=1;
  }

答案 2 :(得分:-1)

这就是你需要的

正则表达式:^[0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}$

Demo

为什么你的正则表达式传递的是它没有开始(^)和结束($)锚点。

您可以see here匹配的内容。