正则验证邮箱输入是否正确,中文句号也能通过

前端页面js验证邮箱是否正确,出现如123@qq。com 中文句号也能通过
求大佬 小弟新手一枚
image
image

var emailReg = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"); 
if(!emailReg.test(value4)){
           layer.tips("<span style='color:#FFFFFF'>邮件格式不正确</span>",
          $('#email'), {tips : [2, '#A9CCF0' ]
    });
   return false;
}

这种帖子,不要截图。要贴代码。你截图方便了自己,别人想帮你的话,还要照着图把代码敲出来。这样就比较麻烦。没人想帮你了。

好的 已改正

1 个赞

换这个正则试试看

/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test("123@qq。com")

这个正则是layui框架的校验正则。

多谢 已解决

使用构造函数创造正则对象需要进行转义

^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
new RegExp("^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$")

// 直接使用自变量
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test("123@qq。com")

// 或者直接传入自变量不用引号
new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)
2 个赞