JavaScript的基本搜索功能

时间:2012-06-16 23:14:34

标签: javascript search

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

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

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

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

  • 搜索字词1:这是美好的一天
  • 搜索字词2:这一天
  • 搜索字词3:这很好
  • 搜索字词4:好dy - 用户输了错误 -

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

3 个答案:

答案 0 :(得分:2)

最后一个是'天'的拼写错误?

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

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

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

这有帮助吗?

答案 1 :(得分:1)

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

查看过去的问题: Getting the closest string match

答案 2 :(得分:1)

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

This link shows an example这将允许您不区分大小写地搜索:

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

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

  • 这是一天
  • Thagd( Th a g oo d 日)
  • good dy -intended typo -

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

希望这有帮助!