. Существует ли библиотека JavaScript, которая может определить, соответствует ли строка поисковому запросу? Он должен быть эффективным и предоставлять расширенные функции запросов, такие как Google или LexisNexis (, такие как и/или операторы, синонимы и круглые скобки ). Любые функции расширенного поиска были бы великолепны; он не обязательно должен точно соответствовать какой-либо конкретной поисковой системе.
Мотивация :У меня есть HTML-страница с окном поиска, за которым следует набор абзацев (, которые имеют уникальные идентификаторы и генерируются из массива JavaScript ). Когда пользователь вводит поисковый запрос в поле и нажимает ввод, все абзацы должны быть скрыты (, т.е. их display
устанавливается на none
). если они не соответствуют запросу.
Моя текущая стратегия (с использованием jQuery):
$('p').hide()
.$('p:contains("'+keyword+'")').show()
.Это чрезвычайно ограниченная функция поиска, чувствительная к регистру -, рассматривающая все ключевые слова как необязательные и не предоставляющая такие операторы, как and
, or
или круглые скобки. Это также неэффективно, потому что он проходит через каждую строку один раз для каждого ключевого слова, даже если оно уже было сопоставлено.