簡體   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