字符串转正则对象的几种方法

最近开发的一个项目,对网络安全要求很高,不可以执行文本js,比如就禁止用eval函数(使用第三种方法),故总结几种转换方法。

1.使用eval函数

2.new Function

3.new RegExp

注意第3种方法,实例化RegExp对象,会在原先字符串基础上加\,所以要提前去掉。

代码如下

    let fileIndex = '0-9'
    let reg = '/[a-zA-Z' + fileIndex + '_-]+/'
    var reg1 = eval(reg)
    var reg2 = new Function('return ' + reg)();
    var reg3 = new RegExp(reg)
    console.log(reg1);
    console.log(reg2);
    console.log(reg3);


    let regCopy = '[a-zA-Z' + fileIndex + '_-]+'
    var reg4 = new RegExp(regCopy)
    console.log(reg4);

字符串转正则对象的几种方法_第1张图片

 

 

你可能感兴趣的:(javascript,前端,开发语言)