2017-09-14 186 views
0

我有以下功能:RegExp特殊字符?

function myFunction(str, find, replace) { 

var res = str.replace(new RegExp(find, 'g'), replace); 

document.getElementById("demo").innerHTML = res; 

} 

简单地将发现和对被传入的一个字符串替换但是可以说,例如我想拥有它找到并[此处链接]取代的东西等。如果我将[link here]传入函数,它会有点疯狂,并将字符串中的%插入到整个位置。我猜它不同意特殊的字符?我怎么才能找到它[]内的东西?或者我应该把它包在别的像-link这里 -

回答

-1

必须逃脱正则表达式字符,你可以通过这个正则表达式轻松地做到这一点:

find = find.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); 
var res = str.replace(new RegExp(find, 'g'), replace); 
document.getElementById("demo").innerHTML = res; 

OFC,它能够更好地封装在此功能一个全局功能,并在需要的任何地方使用它。