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:...]');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容