1

我已經實現的功能,我用下面的源代碼,如:結合jQuery UI的自動完成資源

source: function (request, response) { 
       // Using a custom source callback to match only the beginning of terms 
       var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i"); 
       response($.grep(availableTags, function (item) { 
        return matcher.test(item); 
       })); 
      } 

哪能:

source: function (request, response) { 
       // delegate back to autocomplete, but extract the last term 
       response($.ui.autocomplete.filter(availableTags, extractLast(request.term))); 
      }, 

我以下面的源代碼實現的新功能結合這兩個源標籤,以便我可以具有這兩個功能?

回答

1

我認爲你在尋找這樣的事情(只要傳遞的extractLast結果爲正則表達式,而不是整個學期):

source: function (request, response) { 
    var term = extractLast(request.term), 
     matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(term), "i"); 

    response($.grep(availableTags, function (item) { 
     return matcher.test(item); 
    })); 
} 

例子:http://jsfiddle.net/Aa5nK/6/

什麼都正在做:

  • 第一個是根據用戶類型的最後一項過濾自動完成條款d(由,劃定)
  • 第二個是根據用戶鍵入的術語創建regular expression^的意思是「開始於」,後面跟着一個效用函數,用於從該術語中刪除任何特殊字符,最後是使正則表達式不區分大小寫的參數i
  • ,結合它們僅僅是一個提取的最後期限(以extractLast,然後根據這個詞創造一個正則表達式的問題。
+0

哇!太謝謝你了,這是真棒。這是真的很難我明白了(仍然是,實際上,但至少我可以嘗試去研究它) – user1477388 2013-03-02 22:08:05

+1

@ user1477388:很高興我可以幫忙!我進入了一些更詳細的信息,希望能夠澄清事情 – 2013-03-02 22:12:48

+0

那是一個很好的解釋,會幫助我前進,再次感謝安德魯。 – user1477388 2013-03-02 23:07:27