2012-09-04 69 views
1

我已經搜索了很多時間,但沒有結果。 我正在嘗試使用Jquery UI自動完成插件。 我正在使用組合框模式(此處提供示例:http://jqueryui.com/demos/autocomplete/#combobox)。 從我設法理解,改變這個代碼(從示例)jquery ui自動完成 - 組合框 - 匹配第二個/第三個字的第一個字母

var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");

與此

var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");

確保了我將在第一個單詞的首字母得到自動完成。 不過,假如我有選擇像這樣的數組:

<option value="">Auto Skin</option> 
<option value="">Score</option> 

並輸入字母「s」,它會自動顯示只有「分數」選項。

我怎樣才能改變正則表達式來得到兩個結果,因爲選項「自動皮膚」具有也以字母's'開頭的單詞「皮膚」? 謝謝!

回答

2

而不是正則表達式模式^匹配字符串的開始,使用正則表達式模式\b來匹配單詞邊界。

var matcher = new RegExp("\\b" + $.ui.autocomplete.escapeRegex(request.term), "i"); 

更多信息here

+0

我試過這個,但它不工作。我應該在哪裏放這個,在\t source:function(request,response)? –

+0

我的意思是,var matcher = new RegExp(「\」+ $ .ui.autocomplete.escapeRegex(request.term),「i」);完成第二個,第三個單詞,但不自動完成第一個單詞。 –

+0

使用'\ b'作爲單詞邊界,而不是'\' – jonkroll

相關問題