JS正则踩坑之转义笔记

首先看看这个写法,判断对不对:

var res = /\[f:(.+?)\]/.exec('[f:pixiv][t:...]');

以及这个:

var res = new RegExp('\[f:(.+?)\]').exec('[f:pixiv][t:...]');

答案是前者正确,后者错误。原因在于:

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠\\)。

所以后者的正确写法为:

var res = new RegExp(\\[f:(.+?)\\]').exec('[f:pixiv][t:...]');

你可能感兴趣的:(JS正则踩坑之转义笔记)