【发布时间】:2013-07-23 02:30:07
【问题描述】:
我知道str.replace(/x/g, "y")替换了字符串中的所有 x,但我想这样做
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
如何在第一个参数中使用变量?
【问题讨论】:
标签: javascript string variables replace
我知道str.replace(/x/g, "y")替换了字符串中的所有 x,但我想这样做
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
如何在第一个参数中使用变量?
【问题讨论】:
标签: javascript string variables 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
【讨论】:
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);
}
【讨论】:
*, +, [.
return。我显然专注于正则表达式部分,而不是替换部分。