我知道str.replace(/x/g, "y")
替换了字符串中的所有x,但我想这样做
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
如何在第一个参数中使用变量?
答案 0 :(得分:37)
RegExp
构造函数接受一个字符串并从中创建一个正则表达式。
function name(str,replaceWhat,replaceTo){
var re = new RegExp(replaceWhat, 'g');
return str.replace(re,replaceTo);
}
如果replaceWhat
可能包含正则表达式中特殊的字符,则可以执行以下操作:
function name(str,replaceWhat,replaceTo){
replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp(replaceWhat, 'g');
return str.replace(re,replaceTo);
}
答案 1 :(得分:1)
替换有一个替代形式,它接受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