2012-09-04 72 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

相关问题