2016-01-23 22 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