From 68c13cd6a624b145ccf9a585baaea0aa36eff60c Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Tue, 22 Feb 2011 12:09:03 +0100 Subject: [PATCH] Menu: Escape characters for RegExp matching for keyboard item matching. --- tests/visual/menu/flyoutmenu.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/visual/menu/flyoutmenu.js b/tests/visual/menu/flyoutmenu.js index 0485440a5..8534c9462 100644 --- a/tests/visual/menu/flyoutmenu.js +++ b/tests/visual/menu/flyoutmenu.js @@ -57,15 +57,17 @@ $.widget("ui.flyoutmenu", { } else { character = prev + character; } - + function escape(value) { + return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + } var match = self.activeItem.parent("ul").children("li").filter(function() { - return new RegExp("^" + character, "i").test($("a", this).text()); + return new RegExp("^" + escape(character), "i").test($("a", this).text()); }); var match = skip && match.index(self.active.next()) != -1 ? match.next() : match; if (!match.length) { character = String.fromCharCode(event.keyCode); match = self.widget().children("li").filter(function() { - return new RegExp("^" + character, "i").test($(this).text()); + return new RegExp("^" + escape(character), "i").test($(this).text()); }); } if (match.length) { -- 2.39.5