组合jQuery UI自动完成源

组合jQuery UI自动完成源,jquery,jquery-ui,jquery-autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,Jquery Ui Autocomplete,我通过以下源标记实现了我喜欢的功能: source: function (request, response) { // delegate back to autocomplete, but extract the last term response($.ui.autocomplete.filter(availableTags, extractLast(request.term))); }, sou

我通过以下源标记实现了我喜欢的功能:

source: function (request, response) {
                 // delegate back to autocomplete, but extract the last term
                 response($.ui.autocomplete.filter(availableTags, extractLast(request.term)));
             },
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)));
             },
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);
                }));
            }

如何将这两个源标记组合在一起,以便同时具有这两个标记的功能?

我想您正在寻找类似的内容(只需将
extractLast
的结果传递到正则表达式中,而不是整个术语):

示例:

他们都在做什么:

  • 第一个是根据用户键入的最后一项过滤自动完成术语(由
    描述)
  • 第二种方法是根据用户输入的术语创建一个新名称。
    ^
    表示“以开头”,后面是一个实用函数,用于删除术语中的任何特殊字符,最后是使正则表达式不区分大小写的
    i
    参数
  • 组合它们只是提取最后一个术语(使用
    extractLast
    ),然后基于该术语创建正则表达式

我想您正在寻找类似的内容(只需将
extractLast
的结果传递到正则表达式中,而不是整个术语):

示例:

他们都在做什么:

  • 第一个是根据用户键入的最后一项过滤自动完成术语(由
    描述)
  • 第二个是基于用户键入的术语创建。
    ^
    表示“以开头”,后面是一个实用函数,用于删除术语中的任何特殊字符,最后是使正则表达式不区分大小写的
    i
    参数
  • 组合它们只是提取最后一个术语(使用
    extractLast
    ),然后基于该术语创建正则表达式

哇!非常感谢。太棒了。这对我来说真的很难理解(事实上,现在仍然是;但至少我可以试着去研究它)@user1477388:很高兴我能帮上忙!我对正在发生的事情做了更详细的介绍,希望能澄清一些事情。这是一个很好的解释。这将帮助我向前迈进。再次感谢你,安德鲁。哇!太感谢你了。太棒了。这对我来说真的很难理解(事实上仍然是这样;但至少我可以试着去研究它)@user1477388:很高兴我能帮上忙!我详细介绍了发生的事情,希望能澄清问题。这是一个很好的解释。这将有助于我前进。再次感谢安德鲁。