Skip to content

Commit 171120d

Browse files
authored
searcher.js: Escape characters when building regexps (#1397)
Otherwise characters with regexp meaning ~like `.` won't behave as expected~. Actually `.` when inside `[]` doesn't have a special meaning, however `\` and a few other break the search.
1 parent e4d727f commit 171120d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

lib/rdoc/generator/template/json_index/js/searcher.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,12 @@ Searcher.prototype = new function() {
5858

5959
function buildRegexps(queries) {
6060
return queries.map(function(query) {
61-
return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i');
61+
var pattern = [];
62+
for (var i = 0; i < query.length; i++) {
63+
var char = RegExp.escape(query[i]);
64+
pattern.push('([' + char + '])([^' + char + ']*?)');
65+
}
66+
return new RegExp(pattern.join(''), 'i');
6267
});
6368
}
6469

0 commit comments

Comments
 (0)