javascript 使用 new RegExp 创建正则表达式

下面是设置用户代码为字母数字组合,并且4~6位,测试正确的是:varre=newRegExp(/^[a-zA-Z0-9]{4,6}$/);为什么下面几种是错误的?varr... 下面是设置用户代码为字母数字组合,并且4~6位,
测试正确的是:var re = new RegExp(/^[a-zA-Z0-9]{4,6}$/);
为什么下面几种是错误的?
var reg = new RegExp("/^[a-zA-Z]\w+@\w+\.com$/");
var reg = new RegExp("^[a-zA-Z]\w+@\w+\.com$");
var reg = new RegExp("[a-zA-Z]\w+@\w+\.com");
使用new RegExg的语法不是:re = new
RegExp("pattern",["flags"]) 吗?这个是从帮助手册上看到到
为什么这几个加分号就不正确,而不加分号才是正确的?
展开
 我来答
zhaoapk
2013-12-05 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1610万
展开全部
new RegExp的时候\w \.这样的要用两个反斜杠,即\\w, \\.

因为字符串里反斜杠是转义字符,\w会变成w。

"^[a-zA-Z]\w+@\w+\.com$" == "^[a-zA-Z]w+@w+.com$"
Mini_humour
2013-12-05 · TA获得超过223个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:170万
展开全部
var re=new RegExp("abc","g");//用构造函数创建,匹配模式放在“”内就行了
var re=/abc/g;     //字面量创建就是这样的
  
准确来说,你测试正确的也是错误的写法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪轩辕
2013-12-05 · 超过13用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:27.2万
展开全部
问题不在分号,在引号,Js做正则的时候,正斜线是用来表达正则了,不需要额外加引号,否则会被误识别的吧
后两句没有斜线,是不会识别为pattern的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cs903016
2013-12-05 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1722万
展开全部
要么你就写成这样var reg = /^[a-zA-Z]\w+@\w+\.com$/;

要么就把你的var reg = new RegExp("/^[a-zA-Z]\w+@\w+\.com$/");里面的'/'去掉!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式