javascript - 自动完成单词的任何部分

标签 javascript jquery typeahead.js twitter-typeahead bloodhound

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

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

当我键入 animalani 时,它应该同时显示 Manimal 和 animal 或者如果我键入 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"

});

最佳答案

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

然后创建一个空数组来保存结果(如果有的话)。

遍历数组中包含的每个字符串,如果其中任何一个包含子字符串,则将该字符串插入结果数组。

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

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");

关于javascript - 自动完成单词的任何部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002050/

相关文章:

javascript - 如何在不将元素替换为其克隆的情况下断开匿名 MutationObserver 与文档元素的连接?

javascript - jquery旋钮显示输入完成

javascript - 将 Knockout 与 Typeahead.js 和 Bloodhound.js v0.10 结合使用

javascript - 是否可以在 Google Charts 中格式化图例?

javascript - 我可以将 IF 语句放在 switch case 函数中吗?

javascript - jquery 切换不工作

javascript - 用于检测浏览器宽度和高度的 JS 在 Chrome 和 Safari 中有效,但在 IE9 或 FF9 中无效

javascript - Bootstrap Typeahead 单击时发送表单

javascript - 使用 Typeahead.js 和 JSON 键值更新隐藏的输入字段

javascript - 我无法使用 AngularJS 的 $cookies.get ('key' ) 获取 cookie