我正在寻找使用JavaScript的基本搜索功能。
情景:用户输入单个或多个单词,然后点击按钮。 JavaScript会查找可能与输入的搜索句子相关的项目的字符串数组。
我现在唯一知道的函数是“string.search”,它返回你要搜索的字符串的位置。这很好,但不适用于所有情况。以下是搜索功能应涵盖的几个示例
我们假设我的数组中有以下字符串:“这是一个美好的一天”。在针对我的搜索功能进行测试时,以下搜索字词应返回true。
所以没有什么特别或具体的。只是一个基本的搜索功能,如果搜索词与测试数组中的字符串相关,则可以预测(在低级别,语言不可知)。
答案 0 :(得分:2)
最后一个是'天'的拼写错误?
如果没有,您可以使用split()函数简单地拆分搜索句子和原始字符串。
然后,您将迭代搜索词,并确保它们出现在源字符串中。一旦找不到该单词,就会停止搜索。
这假设所有搜索词都应该是AND,而不是OR。
这有帮助吗?
答案 1 :(得分:1)
这并不像人们想象的那么简单。我们正在讨论模糊匹配和Levenshtein距离/算法。
查看过去的问题: Getting the closest string match
答案 2 :(得分:1)
我猜你要找的是基于模式匹配的实时搜索,类似于有限状态自动机(FSA)搜索:
This link shows an example这将允许您不区分大小写地搜索:
示例:数组包含'这是美好的一天'
搜索以下任何(或全部)内容有效:
等
可以找到区分大小写(尽管不是完美的基于FSA)版本here还有one by John Resig但我没有链接到他的演示但是值得一看 - 它是我提到的第一个链接的javascript / jquery端口。
希望这有帮助!