4

我正在寻找的是不仅显示单词开头的建议,而且显示它是否符合单词的任何部分。

例如,如果我有一个单词列表 [Manimal, animal, person, erson]

当我输入animalani时,它应该同时显示Manimal和animal,或者如果我输入son,它应该同时显示person和son

我怎么能用 typeahead 和 Bloodhound 做到这一点?

我努力了

var jobCodes = new Bloodhound({
  datumTokenizer: function (d) { return [d.JobName]; },
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: "/api/jobservice/getjobcodes"
});

Or 

var jobCodes = new Bloodhound({
  datumTokenizer: function (d) { return Bloodhound.tokenizers.nonword(d.JobName); },
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: "/api/jobservice/getjobcodes"

});
4

1 回答 1

0

创建/获取要检查的字符串数组,然后定义一个函数,该函数将字符串数组作为第一个参数,将子字符串作为第二个参数。

然后创建一个空数组,如果有任何结果,它将保存结果。

循环遍历数组中包含的每个字符串,如果其中任何一个包含子字符串,则将该字符串推送到结果数组中。

最后,如果有结果,返回它们。否则返回“无结果”。

var phrases = ["lazy", "little", "laughing", "ladies"];
var checkStringsForSubString = function(str, subStr) {
    var results = [];
    for (var i = 0; i < phrases.length; i++) {
        if (str[i].indexOf(subStr) != -1) {
            results.push(str[i]);
        }
    }
    if (results.length > 0) {
        return results;
    } else {
        return "no results";
    }
};
checkStringsForSubString(phrases, "la");
于 2014-02-25T00:37:32.860 回答