我知道str.replace(/x/g, "y")
替换字符串中的所有x,但我想做到这一点:
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
我如何在第一个参数中使用变量?
我知道str.replace(/x/g, "y")
替换字符串中的所有x,但我想做到这一点:
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
我如何在第一个参数中使用变量?
RegExp
构造函数接受一个字符串并将其转换为正则表达式。function name(str,replaceWhat,replaceTo){
var re = new RegExp(replaceWhat, 'g');
return str.replace(re,replaceTo);
}
如果replaceWhat
可能包含正则表达式中的特殊字符,可以这样做:
如果replaceWhat
可能包含正则表达式中的特殊字符,你可以这样做:
function name(str,replaceWhat,replaceTo){
replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp(replaceWhat, 'g');
return str.replace(re,replaceTo);
}
几年前,浏览器已经从下面的标志参数中删除了第三个参数,因此这个答案不再需要--现在使用 replace 全局替换而无需标志
Replace有一种接受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
*
、+
、[
,则此方法无法按预期工作。 - ptsreturn
。显然,我只关注了正则表达式部分,而忽略了替换部分。 - Barmar