2016-01-23 57 views
1

我正在使用typeahead.js获得建议。除了一个问题,它运行良好。我的建议有括号,就像这样:获得typeahead.js以在查找建议时忽略括号

"Elizabeth (Liz)" 
"Robert (Bob)" 
"Michael (Mike)" 

typeahead.js只匹配单词的开始,因此,如果用户键入“利兹”它不会建议中的第一项。如果输入“(Liz)”,则匹配,但用户应该能够输入名称或昵称来查看匹配的建议。

如何获取typeahead.js忽略括号并在两者中查找匹配也就是说

工作的jsfiddle例如:https://jsfiddle.net/laurakurup/mru39nk2/

重要提示:我不想typeahead.js寻找匹配字符串中的任何地方我知道这会解决它,但是当有几十成千上万的建议不会有帮助,例如,键入“Beth”建议“Beth任何”但不是“El iza beth“。我需要保持这个功能。除括号外,建议只应匹配每个单词的开头。

感谢您的帮助。

回答

2

可以使用Bloodhound.tokenizers.nonword标记生成器作为datumTokenizer

内部则使用此表达split(/\W+/)将由不是单词的一部分的任何字符分割的叮咬。例如符号和空格。

这里给爵士小提琴js fiddle

可选您可能想实现自己的分词用空格和括号分裂的链接。

+0

在这个问题上的任何帮助http://stackoverflow.com/questions/35320812/duplicate-records -coming功能于预输入搜索 – F11

3

如果你改变了datumTokenizer到:

datumTokenizer: Bloodhound.tokenizers.nonword 

的预测将在以同样的方式词的开头为空格进行,但不包括符号,不仅分裂。

然后你得到的建议为利兹伊丽莎白(利兹)

+0

工作就像一个魅力。我在挖掘文件,但应该看看猎犬。感谢您的帮助! – laurakurup

+0

在这个问题上的任何帮助http://stackoverflow.com/questions/35320812/duplicate-records-coming-in-typeahead-search – F11