0
我試圖通過使用正則表達式而不是常規替換來提高我的代碼的一部分,以獲得乾淨的字符串提交給Solr的客戶端。使用正則表達式改進這種遞歸搜索
String.prototype.replaceArray = function(find, replace) {
var replaceString = this;
for (var i = 0; i < find.length; i++) {
replaceString = replaceString.replace(find[i], replace[i]);
}
return replaceString;
};
var match = [
'\\',
'+',
'-',
'&',
'|',
'!',
'(',
')',
'{',
'}',
'[',
']',
'^',
'~',
'*',
'?',
':',
'"',
';',
' '
];
var replace = [
'\\\\',
'\\+',
'\\-',
'\\&',
'\\|',
'\\!',
'\\(',
'\\)',
'\\{',
'\\}',
'\\[',
'\\]',
'\\^',
'\\~',
'\\*',
'\\?',
'\\:',
'\\"',
'\\;',
'\\ '
];
_.map(object, function (field) {
field.replaceArray(match, replace);
});
可能存在一種使用正則表達式的方法嗎?
我試圖取代
field.replaceArray(match, replace);
這個
field.replace(/([\\+-&|!(){}[]^~*?:";])/g, '\\$1');
,但因爲我不明白足夠的正則表達式是如何工作:(
這裏的遞歸在哪裏..? – Redu