首页 > 解决方案 > 将单词作为一个整体包含在内的搜索机制

问题描述

我创建了一种搜索机制,可以在字符串数组中搜索精确匹配的字符串,但我希望它更直观一些。

我还可以让它在字符串中搜索一个字符串(例如chickengrilled chicken- 但是问题是这允许用户输入kenorill并且它返回grilled chicken.

chicken如果我输入或,我希望它返回grilled

有人对如何拥有更直观的搜索机制有任何建议吗?

编辑:

下面的正确答案在输入 1 个单词时有效,它会搜索字符串中的所有单个单词。但是,我意识到当您搜索 2 个单词时它会失败(因为它只单独搜索每个字符串单词)。

我通过添加不仅包括单独|| search == string的单词匹配而且包括整个字符串匹配来解决这个问题。if

但是,我仍然遇到问题,无论是搜索:

整个字符串匹配 OR 匹配单个单词。

search = green cup这意味着它在和时失败string = big green cup。有没有办法通过切割集合来搜索来解决这个问题?也许类似于:

string.split(' ')但也包括big green, green cup到数组中?

标签: javascriptarraysnode.jsstringsearch

解决方案


在没有正则表达式的情况下尝试这个最简单的代码

var data = ["first string1 is here", "second string2 is here", "third string3 is here"];
    var wordToSearch = "string2 is thanks";
    var broken = wordToSearch.split(' ');
    var result = 'not found';
    if(broken.length == 1){
    data.forEach(function(d){
        d1 = d.split(' ');
    if(d1.includes(wordToSearch))
        result = d;
});
}
else if(broken.length == 2)
{
    data.forEach(function(d){
        var d1 = d.split(' ');
        if(d1.includes(broken[0]) && d1.includes(broken[1]))
        {
            result = d;
        }
    });
}
alert(result);

推荐阅读