我有以下功能:
function myFunction(str, find, replace) {
var res = str.replace(new RegExp(find, 'g'), replace);
document.getElementById("demo").innerHTML = res;
}
这将简单地找到并替换传入的字符串。但是,例如,我想让它找到并替换像[link here]这样的东西。如果我将[link here]传递给函数,它会有点疯狂,并在字符串中的所有位置插入%。我猜它不同意特殊的字符?我怎样才能让它在[]中找到一些东西?或者我应该把它包装在像-link here-
这样的东西中答案 0 :(得分:-1)
你必须逃避正则表达式字符,你可以通过这个正则表达式轻松完成:
find = find.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1");
var res = str.replace(new RegExp(find, 'g'), replace);
document.getElementById("demo").innerHTML = res;
Ofc,最好将此功能封装在全局函数中,并在任何需要的地方使用它。