2016-08-12 46 views
0

字符串我有像這樣的字符串數組只顯示一個字......從自動完成

Array = ["WELLS FARGO DEALER May 18 06:11 4137 Reference# 10982", 
     "ONLINE - TRANSFER TO Ult SavingMay 18 03:57 4137 ONLINE Reference# 5929", 
     "Transfer From Checking 03:57a #4137 ONLINE Reference # 005929", 
     "BURLNGTON STORES861"] 

當使用jQuery UI的自動完成和用戶開始輸入一個字或詞,我想自動完成只顯示匹配輸入的「WORD或WORDS」,即使匹配的字符串更長,它只顯示該字符串中的匹配單詞或單詞。我怎樣才能從數組中的字符串內選擇匹配的單詞?

因此,如果用戶鍵入wells f它應該從 「富國經銷商5月18日06:11 4137#參考10982」 串渲染wells fargo

+0

您可以創建一個具有可能的輸入值匹配屬性的對象,例如,如果匹配11個字符中的7個,則屬性名稱長度爲7,屬性返回值爲7。 – guest271314

+0

另請參見http://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense/ – guest271314

回答

1

您可以使用像/#{text}([a-zA-Z]*)\b/這樣的正則表達式,它會匹配輸入的所有文本和任何其他a-z字符,直到達到字邊界。

+0

有趣的答案,我如何將此正則表達式添加到控制器搜索方法'render json:names.map( &:downcase).select {| i | i.include?(params [:term] .downcase)}。to_json' – SupremeA

+0

我試過這個'render json:names.map(&:downcase).select {| i | i.include?(/#{params [:term] .downcase}([a-zA-Z] *)\ b /)}。to_json'但是我不斷收到錯誤'沒有將Regexp隱式轉換爲字符串' – SupremeA

+0

使用比賽,包括?僅適用於字符串。 – PoloniculMov