关于JS的正则表过式初始化赋值new RegExp

写了个验证邮箱的正则表达式为什么varreg=newRegExp("^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$","i");不... 写了个验证邮箱的正则表达式
为什么var reg=new RegExp("^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$","i");不行?
这么写却可以var reg=/^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$/i;
上面一个到底错在哪里呢,高手告诉我一下
我是想问var reg=/^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$/i;可以用来判断qq邮箱,如12234@qq.com.

但是var reg=new RegExp("^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$","i")这种写法,不管我写的什么邮箱都判断不对
展开
 我来答
yugi111
2015-11-07 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
都不行,因为邮箱是小写字母,不应该有i

/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
或者
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/

var reg = new RegExp("^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$");
var email = "78623242@abc.com";
console.log(reg.test(email));
追问
高手,我是想问var reg=new RegExp("^\w+@[a-z0-9-]+\.[a-z]{2,7}(\.[a-z]{2,7})?$","i")

这个格式是不是哪里不对,下面的这个可以验证是正确的,这个表达式不管邮对不对,都显示错的列.另外邮箱用大写好像也可以登录的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式