Javascript jquerytypeahead:处理非相关词

Javascript jquerytypeahead:处理非相关词,javascript,jquery,typeahead,Javascript,Jquery,Typeahead,我使用这个jquery typeahead插件: 我有一个非常简单的代码: var street=['street of north','street of south','street of east']; $.typeahead({ input: "#input", order: "asc", minLength: 1, source: {

我使用这个jquery typeahead插件:

我有一个非常简单的代码:

var street=['street of north','street of south','street of east'];

            $.typeahead({
            input: "#input",
            order: "asc",
            minLength: 1,
            source: {
                data: street
            }

        });
当我输入“north”时,建议是“street of north”

但是当我键入“north street”时,我希望得到“street of north”的建议,而不仅仅是为了精确的字符串


这是一个代码笔演示:

我发现了。似乎有效:

        $.typeahead({
            input: "#input",
            order: "asc",
            minLength: 1,
            accent: true,searchOnFocus: true, 

            source: {
                data: gares
            },
            cancelButton: false,
            filter: function (item, displayKey) {
            var queryArray = this.query.split(' ');

            for (var i = 0, ii = queryArray.length; i < ii; ++i) {
            if (displayKey.toLowerCase().includes(queryArray[i].toLowerCase())) {

            }
            else {return false;}
            }
            return true;
            }

            });
更新:适用于重音:

filter: function (item, displayKey) { var queryArray = this.query.split(' '); var aa=displayKey.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); for (var i = 0, ii = queryArray.length; i < ii; ++i) { var bb= queryArray[i].toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); if (!aa.includes(bb)) {return false} } return true; }
filter:function(item,displayKey){var-queryArray=this.query.split(“”);var-aa=displayKey.toLowerCase().normalize(“NFD”).replace(/[\u0300-\u036f]/g,”);for(var i=0,ii=queryArray.length;i
filter: function (item, displayKey) { var queryArray = this.query.split(' '); var aa=displayKey.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); for (var i = 0, ii = queryArray.length; i < ii; ++i) { var bb= queryArray[i].toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); if (!aa.includes(bb)) {return false} } return true; }