1
0
Fork 0
mirror of https://github.com/twbs/bootstrap.git synced 2022-11-09 12:25:43 -05:00

typeahead should escape regexp special chars

This commit is contained in:
Jacob Thornton 2012-03-19 15:33:28 -07:00
parent bf59220b87
commit 83a7a69893
2 changed files with 18 additions and 1 deletions

View file

@ -109,7 +109,8 @@
} }
, highlighter: function (item) { , highlighter: function (item) {
return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) { var query = this.query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>' return '<strong>' + match + '</strong>'
}) })
} }

View file

@ -52,6 +52,22 @@ $(function () {
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
test("should not explode when regex chars are entered", function () {
var $input = $('<input />').typeahead({
source: ['aa', 'ab', 'ac', 'mdo*', 'fat+']
})
, typeahead = $input.data('typeahead')
$input.val('+')
typeahead.lookup()
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
equals(typeahead.$menu.find('li').length, 1, 'has 1 item in menu')
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
typeahead.$menu.remove()
})
test("should hide menu when query entered", function () { test("should hide menu when query entered", function () {
stop() stop()
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({