【问题标题】:Lightweight email address regular expression轻量级电子邮件地址正则表达式
【发布时间】:2014-04-08 11:27:13
【问题描述】:

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

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

这适用于大多数电子邮件地址,例如在电子邮件地址的最后一部分使用@符号的电子邮件地址,例如:email@address.co@m 将给出有效的电子邮件地址结果.

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

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    只需在开头添加^,在末尾添加$

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

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

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

    【讨论】:

      【解决方案2】:

      试试这个代码

      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;
        }
      

      【讨论】:

        【解决方案3】:

        这是你需要的

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

        Demo

        您的正则表达式通过的原因是它没有 start(^) 和 end($) 锚点。

        你可以see here匹配的。

        【讨论】:

        • @downvoter 请解释为什么突然投反对票。我错过了什么吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-25
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        相关资源
        最近更新 更多