使用typeahead.js在字符串中搜索?

时间:2013-08-04 20:05:49

标签: javascript jquery-ui-autocomplete typeahead.js

我希望typeahead.js的行为类似于jqueryui autocomplete关于它如何匹配项目。使用jqueryui自动填充,可以在文本项内搜索。在typeahead中,它只是从字符串的开头。

自动填充示例:http://goo.gl/O43afF

Typeahead示例:http://twitter.github.io/typeahead.js/examples/

使用自动完成功能,似乎可以分配比较功能,但我没有在typeahead中找到类似的东西。

如果我有一个包含“Equestrian(Horses)”项目的列表,那么如果我开始写“o”,我想得到一个匹配。

2 个答案:

答案 0 :(得分:2)

正确地说,

Typeahead.js代码会查找前缀匹配。但是有一个“技巧”:每个数据也可能包含一个tokens元素,正如Typeahead文档所说的那样“是一个字符串集合,可以帮助在给定查询的匹配基础中输入typeahead.js”。

前缀匹配是针对tokens完成的。如果您没有为其中一个基准提供tokens值,则会为您标记其值(以空格分隔)。但是,您可以提供tokens来获得您想要的内容。例如,在您的情况下,您将提供tokens的值,该值是查询字符串中所有单词的所有唯一子字符串。

我建议“长度> = 2”的所有唯一子串,顺便说一句。

答案 1 :(得分:0)

typeahead的数据源是通过'source'参数设置的。所以在那里放置另一个方法而不是数组是完全可以的。另请注意,它在内部需要一个字符串数组,因此您必须将所有内容格式化为字符串。

Take a look at this fiddle for an example

编辑:此示例现在始终生成从测试0到测试9的值,因此您当然只能通过输入“test”的部分进行检查