dal*_*lin 2 javascript arrays search parsing full-text-search
我正在尝试创建一个搜索框,当用户键入他们的搜索词时,它会不断评估这些搜索词是否在我的内容中。
我有一系列搜索字词和短语,例如:
["home", "and", "garden", "weeding a flower patch", "best tools"]
Run Code Online (Sandbox Code Playgroud)
我还有一个字符串,其中包含我要搜索的内容,例如:
"Using your hands to dig your flower holes brings you closer to the earth."
Run Code Online (Sandbox Code Playgroud)
在Javascript中,我需要查看该字符串的任何部分中是否有任何搜索词。我不需要知道哪些术语匹配或在何处匹配,只有该字符串中的某处至少是我的一个搜索术语的一个实例。这很重要,尽管它也可以在内容字符串中找到部分匹配项。例如,在上面的示例中,它应该返回true,因为单词“ hands”包含我搜索词中的单词“ and”。同样重要的是,以最快,最少计算量的方式完成此操作,因为我将连续数千次调用此函数。我怎样才能最好地做到这一点?
我将如何与Almog Baku的解决方案类似:
var makeSearcher = function(terms) {
var regex = new RegExp(terms.join("|"));
return function(str) {
return regex.test(str);
};
};
var searcher = makeSearcher(["home", "and", "garden",
"weeding a flower patch", "best tools"]);
searcher("Using your hands to dig ..."); //=> true
searcher("Using your fingers to dig ..."); //=> false
Run Code Online (Sandbox Code Playgroud)
仅当您的搜索词不包含任何正则表达式中特殊的字符时,此技术才有效。但我认为,假设您的搜索字词相对固定,这可能会相当有效。
归档时间: |
|
查看次数: |
669 次 |
最近记录: |