繁体   English   中英

JavaScript的基本搜索功能

[英]Basic search functionality with JavaScript

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

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

我现在唯一知道的函数是“string.search”,它返回你要搜索的字符串的位置。 这很好,但不适用于所有情况。 以下是搜索功能应涵盖的一些示例

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

  • 搜索术语1:这是美好的一天
  • 搜索术语2:这一天
  • 搜索术语3:这很好
  • 搜索条件4:好dy - 用户输了一个错字 -

所以没什么特别或具体的。 只是一个基本的搜索功能,如果搜索项与测试数组中的字符串相关,则预测(在低级别,语言不可知)。

最后一个是'天'的错字吗?

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

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

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

这有帮助吗?

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

查看过去的问题: 获得最接近的字符串匹配

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

此链接显示了一个示例 ,它允许您不区分大小写地搜索:

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

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

  • 这是一天
  • Thagd(Th OO d天)
  • 好的dy -intended typo-

等等

一个区分大小写(虽然不是完美的基于FSA)版本可以在这里找到一个由约翰Resig也有一个,但我没有他的演示的链接,但它值得一看 - 这是一个javascript / jquery端口我提到的第一个链接。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM