这是我到目前为止所做的,但它只匹配目标字符串的开头:
var enteredText = new RegExp("^" + $.ui.autocomplete.escapeRegex(term), "i");
$.ui.autocomplete.filter = function(array, term) {
var enteredText = new RegExp("^" + $.ui.autocomplete.escapeRegex(term), "i");
return $.grep(array, function(value) {
return enteredText.test(value.label || value.value || value);
});
};
注意:$ .ui.autocomplete.filter允许我更改jQuery UI如何使用自动完成功能搜索术语。
“term”是输入到输入框中的文本。
“$。grep”将自动完成“数组”中的每个元素插入“function(value)”
编辑1: 我正在寻找一个正则表达式从字符串中的每个单词的开头搜索。例如,“an”匹配“我喜欢Andy”而不是“我喜欢糖果”。
答案 0 :(得分:2)
这是我到目前为止所做的,但它只匹配目标字符串的开头:
解决这个问题
试试这个:
删除^
,因为您不想只在字符串的开头。
var enteredText = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
为此:
编辑1:我正在寻找正则表达式,从每个开头搜索 字符串中的单词。例如,""比赛"我喜欢Andy"但不是"我 喜欢糖果"。
既然您要匹配,则必须使用.+?
为正则表达式添加前缀和后缀。像
var enteredText = new RegExp(".*"+$.ui.autocomplete.escapeRegex(term)+".*", "i");