通过forEach将变量插入到regex表达式中

时间:2018-04-22 17:19:55

标签: javascript node.js regex ecmascript-6 frontend

正如你在下面看到的,我正在尝试计算字符串J中的字符在字符串S中出现的次数。唯一的问题是我不能将forEach循环中的参数o放入正则表达式中,如图所示在console.log中。

var numJewelsInStones = function(J, S) {
    let jArr = J.split('');
    let sArr = S.split('');

    jArr.forEach(o=>{
    console.log(S.replace(/[^o]/g,"").length);      
    })
};

numJewelsInStones("aA", "aAAbbbb");

1 个答案:

答案 0 :(得分:0)

您可以使用构造函数创建正则表达式,您可以在其中传递字符串参数:

new RegExp('[^' + o + ']', 'g')

您的替换逻辑可能如下所示:

S.replace(new RegExp('[^' + o + ']', 'g'), '')