2017-09-14 216 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,它能夠更好地封裝在此功能一個全局功能,並在需要的任何地方使用它。