我正在使用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 "。我需要保持这个功能。除括号外,建议应仅匹配每个单词的开头。
感谢您的帮助。
答案 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
的链接可选地,您可能希望实现自己的标记生成器以按空格和括号分割。