正则表达式用于匹配字符串中的单词

Regex for Matching Words within a String

本文关键字:单词 字符串 用于 正则表达式      更新时间:2023-09-26

这是我到目前为止所拥有的,但它只匹配目标字符串的开头:

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 使用自动完成功能搜索术语的方式。

"术语"是输入框中输入的文本。

"

$.grep"将自动完成"数组"中的每个元素插入到"function(value)"中

编辑 1:我正在寻找一个正则表达式,从字符串中每个单词的开头进行搜索。例如,"an"匹配"我喜欢安迪",但不匹配"我喜欢糖果"。

这是我到目前为止所拥有的,但它只匹配目标字符串的开头:

解决这个问题

试试这个:

删除^,因为您不希望只在字符串的开头。

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

为此:

编辑1:我正在寻找一个正则表达式,从每个的开头搜索 字符串中的单词。例如,"an"匹配"我喜欢安迪",但不匹配"I 像糖果一样"。

既然你说要匹配,你必须在你的正则表达式前面加上前缀和后缀 .+? .喜欢

var enteredText = new RegExp(".*"+$.ui.autocomplete.escapeRegex(term)+".*", "i");