gpt4 book ai didi

javascript - 使用 JavaScript 忽略 "a"、 "the"等的字符串搜索

转载 作者:行者123 更新时间:2023-11-30 12:59:02 25 4
gpt4 key购买 nike

我正在寻找类似的东西:

if(magicSearch("hot pizza","We sell pizza that is really hot") {//Found!}

如果两个词都出现(任何顺序),我只想要一个“true”,我希望它忽略要搜索的文本中的“a”、“and”、“the”等内容。

(我确信有更好的术语来解释我在找什么)

我见过各种数据库引擎支持这种类型的文本搜索(例如 Mongodb),但我需要一种简单的 JavaScript 方法来测试字符串。我可以构建它,但感觉它一定已经存在于某处。

格雷格

最佳答案

您可以在一个简单的循环中使用 indexOf 函数。

//Use this if you don't need to find exact matches of words
function magicSearch(needles, haystack) {
var searchTerms = (needles instanceof Array) ? needles : [needles];
for(var i = 0; i < searchTerms.length; i++) {
if(haystack.indexOf(searchTerms[i]) === -1) {
return false;
}
}
return true;
}

//Use this if you want to find exact matches of words
function magicSearch2(needles, haystack) {
var searchTerms = (needles instanceof Array) ? needles : [needles],
haystackArray = haystack.split(' '),
index,
found = 0;

for(var i = 0; i < haystackArray.length; i++) {
index = searchTerms.indexOf(haystackArray[i]);
if(index !== -1) {
delete searchTerms[i];
found++;
if(found = searchTerms.length) {
return true;
}
}
}
return false;
}
if(magicSearch(["hot", "pizza"],"We sell pizza that is really hot") {
console.log("FOUND");
}
if(magicSearch2(["hot", "pizza"],"We sell pizza that is really hot")) {
console.log("FOUND");
}

关于javascript - 使用 JavaScript 忽略 "a"、 "the"等的字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com