修改 jQuery 自动完成功能以匹配建议输出

Modifying jQuery Autocomplete functionality to match suggestions output

我有以下一段代码。

var data=["NYC - New York City", "LA - Los Angeles", "SF - San Francisco"];
$function(){
    $("#title").autocomplete({
        source: function(request, response){
            var matcher=new RegExp("^"+$ui.autocomplete.escapeRegex(request.term),"i");
            response($grep(data, function(item){
                return matcher.test(item);
            }));
        }
    });
});         

当我输入 NYC 时,我的建议列表中出现了 'NYC - New York City'。洛杉矶和旧金山也一样。但是,当我输入 New York City 时,我没有得到任何建议。谁能帮我解决这个问题?谢谢

用于匹配字符串的正则表达式从字符串的开头搜索 ("^") – 您可以删除它以匹配数据字符串中任意位置的键入字符串:

var matcher = new RegExp($ui.autocomplete.escapeRegex(request.term), "i");

此外,如果您想从特定单词的开头开始匹配,您可以使用单词边界:

var matcher = new RegExp("\b" + $ui.autocomplete.escapeRegex(request.term), "i");

例如,如果输入 "an",它将匹配 "Angeles" 但不匹配 "San" 或 "Francisco".

编辑:

这是一个 JSFiddle (https://jsfiddle.net/Lrtuyeph/),它展示了一个非常简单的例子,即只将 data 数组作为 source 属性 传递——默认行为会做什么你想让它做。