我知道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