Существует встроенный способ сделать это: просто предоставьте функцию для опции source
в виджете автозаполнения:
var items = ['Foo', 'Bar', 'Hello', 'Goodbye', '1234'];
$("#autocomplete").autocomplete({
source: function(request, response) {
// The term the user searched for;
var term = request.term;
// Extract matching items:
var matches = $.grep(items, function(item, index) {
// Build your regex here:
return /\d+/.test(item);
});
// let autocomplete know the results:
response(matches);
}
});
http://jsfiddle.net/RSyrX/
Обратите внимание, что этот пример всегда будет возвращать "1234" из-за простого регулярного выражения, которое я использовал. Возможно, что-то более полезное - это построение регулярного выражения на основе термина (также возможно).
Это на самом деле очень похоже на способ, которым виджет сам фильтрует результаты. Проверьте эту строку для функции фильтра и эту строку , чтобы увидеть, как она вызывается, если вы предоставляете массив как параметр source
.