获取typeahead.js以在查找建议时忽略括号

时间:2016-01-23 19:10:06

标签: javascript jquery typeahead.js typeahead

我正在使用typeahead.js作为建议。除了一个问题,它运作良好。我的建议有括号,如下:

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

typeahead.js仅匹配单词的开头,因此如果用户键入" Liz"它不会建议第一项。如果您键入"(Liz"它将匹配。但是用户应该能够开始输入姓名或昵称以查看匹配的建议。

如何让typeahead.js忽略括号并在两个单词中查找匹配项?

关于jsfiddle的工作示例:https://jsfiddle.net/laurakurup/mru39nk2/

重要说明:我不希望typeahead.js在字符串中的任何位置查找匹配项。我知道这会解决它,但是当有成千上万的建议没有帮助时。例如,输入" Beth"建议" Beth 任何"但不是" Eliza beth "。我需要保持这个功能。除括号外,建议应仅匹配每个单词的开头。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如果您将 datumTokenizer 更改为:

<svg id="circle">
    <circle  cx="125" cy="70" r="60" stroke="darkblue" stroke-width="3" fill="green" />
</svg>

<button onclick="addAnchor()">Add Anchor</button>

预测将以相同的方式在单词的开头执行,但不包括符号,而不仅仅是分割为空格。

然后你会得到 Eli Liz Elizabeth(Liz)的建议。

答案 1 :(得分:2)

您可以将a b c d e 0 1 2 3 5 1 4 0 5 2 5 8 9 6 0 4 5 0 0 0标记器用作Bloodhound.tokenizers.nonword

在内部它使用这个表达式datumTokenizer,它将通过任何不属于该单词的字符来分割蜇。例如符号和空格。

这是js小提琴js fiddle

的链接

可选地,您可能希望实现自己的标记生成器以按空格和括号分割。