优化JavaScript indexOf语句

优化JavaScript indexOf语句,javascript,Javascript,我正在用JavaScript编写一个简单的搜索算法 var title = "The Greatest Movie Ever Made is here!"; var search1 = "the greATEST movie"; var search2 = "here IS made" var search3 = "ever movie greatest the" 使用indexOf()仅返回search1 false,但search2,3也返回true。我如何编写一个简单的搜索算法来识别单词

我正在用JavaScript编写一个简单的搜索算法

var title = "The Greatest Movie Ever Made is here!";
var search1 = "the greATEST movie";
var search2 = "here IS made"
var search3 = "ever movie greatest the"

使用indexOf()仅返回search1 false,但search2,3也返回true。我如何编写一个简单的搜索算法来识别单词顺序不正确或聚集在一起的实例?

这里有一个函数,可以告诉您搜索字符串中的所有单词是否都存在于目标中,而不考虑大小写或单词边界

function findMatch(data, target) {
    var words = data.toUpperCase().split(/\s/);
    if (words.length === 0) {return(false);}
    var uTarget = target.toUpperCase().replace(/\s/, "");
    var matchCnt = 0;
    for (var i = 0; i < words.length; i++) {
        if (uTarget.indexOf(words[i]) != -1) {
            ++matchCnt;
        }
    }
    return(matchCnt === words.length);
}
函数findMatch(数据、目标){
var words=data.toUpperCase().split(/\s/);
if(words.length==0){return(false);}
var uTarget=target.toUpperCase().replace(/\s/,“”);
var-matchCnt=0;
for(var i=0;i

该算法不强制单词边界,因此如果目标包含“and”或“answer”,则搜索“an”将匹配。强制执行单词边界需要更多的代码来理解有效单词边界是什么。

您希望搜索算法是什么?如果目标短语中有单词,是否返回true?如果所有单词都在目标短语中,但顺序如何,则返回true?如果大多数单词都在目标短语中,则返回true?此外,您是否需要只匹配整个单词或允许子单词匹配?子单词和整个单词匹配返回true抱歉,我不知道这有多困难-我省略了搜索4@玛土撒拉-我不明白你在什么类型的数据中搜索什么。你能描述一下你想在代码中做什么吗?您试图搜索的数据结构是什么?