关于javascript:JS使用变量替换所有出现的字符串

JS replacing all occurrences of string using variable

本问题已经有最佳答案,请猛点这里访问。

我知道str.replace(/x/g,"y")替换了字符串中的所有x,但我想这样做

1
2
3
function name(str,replaceWhat,replaceTo){
    str.replace(/replaceWhat/g,replaceTo);
}

如何在第一个参数中使用变量?


RegExp构造函数接受一个字符串并从中创建一个正则表达式。

1
2
3
4
function name(str,replaceWhat,replaceTo){
    var re = new RegExp(replaceWhat, 'g');
    return str.replace(re,replaceTo);
}

如果replaceWhat可能包含正则表达式中特殊的字符,则可以执行以下操作:

1
2
3
4
5
function name(str,replaceWhat,replaceTo){
    replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    var re = new RegExp(replaceWhat, 'g');
    return str.replace(re,replaceTo);
}

在javascript中是否有regexp.escape函数?


替换有一个替代的表单,它接受3个参数并接受字符串:

1
2
3
function name(str,replaceWhat,replaceTo){
    str.replace(replaceWhat,replaceTo,"g");
}

https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/string/replace