【问题标题】:get typeahead.js to ignore parenthesis when finding suggestions让 typeahead.js 在查找建议时忽略括号
【发布时间】:2016-01-23 19:10:05
【问题描述】:

我正在使用typeahead.js 寻求建议。除了一个问题,它运行良好。我的建议带有括号,如下所示:

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

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

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

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

重要提示:我不希望 typeahead.js 在字符串中的任何位置查找匹配项。我知道这会解决它,但是当有数以万计的建议无济于事时。例如,输入“Beth”暗示“Bethany”,而不是“Elizabeth”。我需要保留这个功能。除括号外,建议应仅匹配每个单词的开头。

感谢您的帮助。

【问题讨论】:

    标签: javascript jquery typeahead.js typeahead


    【解决方案1】:

    如果您将 datumTokenizer 更改为:

    datumTokenizer: Bloodhound.tokenizers.nonword
    

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

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

    【讨论】:

    【解决方案2】:

    您可以将Bloodhound.tokenizers.nonword 标记器用作datumTokenizer

    它在内部使用这个表达式split(/\W+/),它将用不属于单词的任何字符来分割stings。例如符号和空格。

    这里是 js fiddle js fiddle的链接

    您可能希望实现自己的标记器以按空格和括号分隔。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 2020-11-17
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多