首先看看这个写法,判断对不对:
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:...]');
网友评论