jQuery:在自动完成下拉列表中仅显示匹配的字符

时间:2016-06-15 17:36:09

标签: javascript jquery regex autocomplete

我在jQuery中创建自己的下拉脚本。事情进展顺利,但我遇到了问题。每当我在文本字段中输入任何字符时,都会显示我正在搜索的数组中的所有元素,而不是与文本框中的内容相匹配的元素。

例如,如果我正则表达式搜索" ra"反对我的阵列:

var planes = [
    'Alara',
    'Fiora',
    'Innistrad',
    'Kamigawa',
    'Lorwyn',
    'Mirrodin',
    'Ravnica',
    'Shandalar',
    'Zendikar'
];

我应该只在自动填充中看到Ala ra ,Fio ra ,Innist ra d和 Ra vnica

Here's a Plunker.

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你需要比较-1,所以它只会显示它是否被找到。您当前正在比较1,所以它对所有项都返回true。可能是一个错字。祝你好运!

        else{
            //Grep used to search array but not alter the original.
            var results = $.grep(planes, function(item){
                return item.search(new RegExp(query, "i")) != *add a - here* 1;
            });
            console.log("Added " + query + " to cache.");
            cache[query] = results;
        }