3 回答

TA貢獻1804條經驗 獲得超7個贊
str = str.replace(/abc/g, '');
回應評論:
var find = 'abc';
var re = new RegExp(find, 'g');
str = str.replace(re, '');
在回應Click Upvote的評論時,您可以進一步簡化它:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
注意:正則表達式包含特殊(元)字符,因此盲目傳遞上述函數中的參數find而不預先處理它以逃避這些字符是危險的。這在Mozilla開發(fā)者網絡的正則表達式JavaScript指南中有所介紹,它提供了以下實用程序功能:
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
因此,為了使上述replaceAll()功能更安全,如果您還包括以下內容,可將其修改為以下內容escapeRegExp:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}

TA貢獻1826條經驗 獲得超6個贊
注意:不要在實際代碼中使用它。
作為簡單文字字符串的正則表達式的替代,您可以使用
str = "Test abc test test abc test...".split("abc").join("");
一般模式是
str.split(search).join(replacement)
在某些情況下,這比使用replaceAll和正則表達式更快,但在現代瀏覽器中似乎不再是這種情況。因此,這應該只是用作快速入侵,以避免需要轉義正則表達式,而不是真正的代碼。
添加回答
舉報