aboutsummaryrefslogtreecommitdiffstats
path: root/tests/visual
diff options
context:
space:
mode:
authorjzaefferer <joern.zaefferer@gmail.com>2011-02-22 12:09:03 +0100
committerjzaefferer <joern.zaefferer@gmail.com>2011-02-22 12:09:03 +0100
commit68c13cd6a624b145ccf9a585baaea0aa36eff60c (patch)
tree9d63648818bd5f9549bc4d50034a2bdfa26a4534 /tests/visual
parent355705878a22c6d00f242f0d8d93d03a097935e1 (diff)
downloadjquery-ui-68c13cd6a624b145ccf9a585baaea0aa36eff60c.tar.gz
jquery-ui-68c13cd6a624b145ccf9a585baaea0aa36eff60c.zip
Menu: Escape characters for RegExp matching for keyboard item matching.
Diffstat (limited to 'tests/visual')
-rw-r--r--tests/visual/menu/flyoutmenu.js8
1 files 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) {