为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2019-02-14 15:11:11
下面是设置用户代码为字母数字组合,并且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"]) 吗?这个是从帮助手册上看到到为什么这几个加分号就不正确,而不加分号才是正确的?
查看完整描述

4 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

new RegExp的时候\w \.这样的要用两个反斜杠,即\\w, \\.

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

"^[a-zA-Z]\w+@\w+\.com$" == "^[a-zA-Z]w+@w+.com$"

查看完整回答
反对 回复 2019-03-26
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

问题不在分号,在引号,Js做正则的时候,正斜线是用来表达正则了,不需要额外加引号,否则会被误识别的吧
后两句没有斜线,是不会识别为pattern的

查看完整回答
反对 回复 2019-03-26
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

1234var re=new RegExp("abc","g");//用构造函数创建,匹配模式放在“”内就行了var re=/abc/g;     //字面量创建就是这样的   准确来说,你测试正确的也是错误的写法


查看完整回答
反对 回复 2019-03-26
  • 4 回答
  • 0 关注
  • 2146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信