2016-08-12 47 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