From 481b5d5fee580084f7be342e49bbbc5e7241e1cf Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Sun, 3 Aug 2025 16:31:29 +0200 Subject: [PATCH] searcher.js: Escape characters when building regexps Otherwise characters with regexp meaning like `.` won't behave as expected. --- lib/rdoc/generator/template/json_index/js/searcher.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/rdoc/generator/template/json_index/js/searcher.js b/lib/rdoc/generator/template/json_index/js/searcher.js index e200a168b0..f1ffe8cffe 100644 --- a/lib/rdoc/generator/template/json_index/js/searcher.js +++ b/lib/rdoc/generator/template/json_index/js/searcher.js @@ -58,7 +58,12 @@ Searcher.prototype = new function() { function buildRegexps(queries) { return queries.map(function(query) { - return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i'); + var pattern = []; + for (var i = 0; i < query.length; i++) { + var char = RegExp.escape(query[i]); + pattern.push('([' + char + '])([^' + char + ']*?)'); + } + return new RegExp(pattern.join(''), 'i'); }); }