问题描述:网站中需要屏蔽一些URL,使用ES6模板字符串构建正则表达式,用屏蔽的URL做模板变量,但不成功。
具体代码如下:
//1、定义屏蔽URL数组 let arrObj=new Array(); arrObj.push("/blog.html#/rccd/notice"); arrObj.push("gift.html"); //2、获取URL let url=window.location.href; url=...//处理url,将域名去掉 //3、匹配 let flag=0; let reg = RegExp(/3/); let regStr=''; for (var i = 0; i < arrObj.length; i++) { regStr=arrObj[i]; //此处匹配不成功 reg = RegExp(/`${regStr}`/); if(reg.test(url)) { flag=1; break; } } //4、处理跳转 if (flag==1) { window.location.href='/notice.html#'; }
各位大神,使用
RegExp(/`${regStr}`/)
怎样实现动态正则表达式?
我一般是这样写的:reg = new RegExp(`${regStr}`);
不用加/ /这个了,你都用了构造函数的创建方式了,里面就不需要再用字面量了。