JavaScript 的基本搜索功能

Basic search functionality with JavaScript

本文关键字:搜索 功能 JavaScript      更新时间:2023-09-26

我正在寻找JavaScript的基本搜索功能。

场景:用户输入一个或多个单词,然后点击按钮。JavaScript 在字符串数组中查找可能与输入的搜索句子相关的项目。

我现在知道的唯一函数是"string.search",它返回您正在搜索的字符串的位置。这很好,但并非适用于所有情况。以下是搜索功能应涵盖的几个示例

假设我的数组中有以下字符串:"这是美好的一天"。以下搜索词在针对我的搜索函数进行测试时应返回 true。

  • 搜索词1:这是个好日子
  • 搜索词2:这一天
  • 搜索词 3:这很好
  • 搜索词4:好dy-用户打错字-

所以没有什么特别或具体的。只是一个基本的搜索功能,用于预测(在低级别,并且与语言无关)搜索词是否与测试数组中的字符串相关。

最后一个是"日"的错别字吗?

如果没有,您可以简单地使用 split() 函数拆分搜索句子以及原始字符串。

然后,您将遍历搜索词,并确保它们出现在源字符串中。一旦找不到该单词,就会停止搜索。

这是假设所有搜索词都应该是 AND'ed,而不是 OR'ed。

这有帮助吗?

我想您正在寻找的是基于模式匹配的实时搜索,类似于类似有限状态自动机 (FSA) 搜索:

此链接显示了一个示例,该示例将允许您不区分大小写进行搜索:

示例:数组包含"这是美好的一天"

搜索以下任何(或全部)内容均有效:

  • 这是一天
  • Thagd (Th is ag oo d day)
  • DY -有意错别字-

等。

可以在此处找到区分大小写(尽管不是完美的基于FSA)的版本 还有一个John Resig,但我没有他的演示的链接,但值得一看 - 它是我提到的第一个链接的javascript/jquery端口。

希望这有帮助!

这并不像人们想象的那么简单。我们谈论的是模糊匹配和Levenshtein距离/算法。

请参阅过去的问题:获取最接近的字符串匹配项