js 正则表达式中一个\和二个的区别

js 正则表达式中有时候需要用\来转义,有时候需要用\来转义,那么什么时候该用\什么时候该用\呢。Code up:

let regExp1 = new RegExp("^\\[");
let regExp2=/^\[/;
regExp1 .test("[123")          //true
regExp2 .test("[123")          //true

那么问题来了。为什么regExp1和regExp2一个用了\一个用了\都能验证开头符号为[的字符串呢?

我们改下代码看看结果。

//相比上面的代码少了一个\  让我们看看结果如何
let regExp1 = new RegExp("^\[");
regExp1 .test("[123")          //运行后报错 

报错信息:Uncaught SyntaxError: Invalid regular expression: /^[/: Unterminated character class
    at new RegExp (<anonymous>)
    at <anonymous>:1:15

那为何regExp2只需要加一个\呢。

仔细观察的人可能已经发现了。regExp1是用的"“包裹。regExp1用的是//包裹。也就是”^\[”中的\相当于二层转义。

那结论就有了。

\在引号中需要转义,所以在引号中使用特殊字符时需要二层转义,而//中\不需要,这就是区别 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值