Jquery自动完成,如何搜索单词而不是字符串

Mic*_*elD 3 html javascript jquery jquery-ui autocomplete

我有一个文本框,我希望有一个自动完成功能,让用户搜索地址.用户必须能够键入不同的单词,并且自动完成必须搜索它们以缩小其列表.

我一直在尝试阅读文档,但似乎没有什么可以做的,因为它总是搜索整个字符串而不是单词.我错过了什么吗?

例:

当用户输入"Mathias Antwerp"时,他必须看到包含这些词的所有地址.在示例中,它必须显示1行,这是第二行.

<script>
var addresses = [
    { name: "Frederick Dereave Gentstreet 4 Gent" },
    { name: "Mathias Derian Meilaan 9 Antwerp" },
    { name: "Mathias Hors frelaan 5 Kortrijk" }
];    

$(document).ready(SetAutoComplete);

function SetAutoComplete() {

    $("#testveld").autocomplete(emails,
        {
            matchContains: "word"
        }
    );
}
</script>
<input type="text" id="testveld" style='width:300px'/>
Run Code Online (Sandbox Code Playgroud)

Mic*_*elD 7

我在jquery.autocomplete.js中更改了matchSubset的代码,这启用了我正在寻找的行为.

function matchSubset(s, sub) {

    var arraySub=sub.split(" ");

    if (!options.matchCase) 
        s = s.toLowerCase();
    var i = s.indexOf(sub);
    if (options.matchContains == "word"){
        i = s.toLowerCase().search("\\b" + sub.toLowerCase());
    }

    //addition for split words
    if (options.matchContains == "splittedword"){
        for(itemindex=0;itemindex<arraySub.length;itemindex++){

            i = s.toLowerCase().search(arraySub[itemindex].toLowerCase());
            if(i==-1){
                break;
            }
        }
    }

    if (i == -1) return false;
    return i == 0 || options.matchContains;
};
Run Code Online (Sandbox Code Playgroud)