我知道str.replace(/x/g, "y")
替换所有X的字符串中的,但我想这样做JS使用可变
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
如何使用第一个参数变量替换字符串的所有出现?
我知道str.replace(/x/g, "y")
替换所有X的字符串中的,但我想这样做JS使用可变
function name(str,replaceWhat,replaceTo){
str.replace(/replaceWhat/g,replaceTo);
}
如何使用第一个参数变量替换字符串的所有出现?
的RegExp
构造函数接受一个字符串,并创建一个正则表达式出来。
function name(str,replaceWhat,replaceTo){
var re = new RegExp(replaceWhat, 'g');
str.replace(re,replaceTo);
}
如果replaceWhat
可能包含在正则表达式的特殊字符,你可以这样做:
function name(str,replaceWhat,replaceTo){
replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp(replaceWhat, 'g');
str.replace(re,replaceTo);
}
更换具有的另一种形式是需要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
这并不如预期工作,如果replaceWhat包含正则表达式元字符,例如'*','+','''。 – pts
@pts所以做了字面上的正则表达式。 – Barmar
然后添加这个逻辑:[Javascript中是否有RegExp.escape函数?](http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript) – dc5