Esiste una libreria JavaScript che può determinare se una stringa corrisponde a una query di ricerca? Dovrebbe essere efficiente e fornire funzionalità di query avanzate come quella di Google o LexisNexis (cose come e/o operatori, sinonimi e parentesi). Qualsiasi tipo di funzionalità di ricerca avanzata sarebbe fantastico; non deve essere una corrispondenza esatta con un particolare motore di ricerca.Libreria JavaScript per la ricerca di stili del motore di ricerca?
Motivazione: ho una pagina HTML con una casella di ricerca seguita da un gruppo di paragrafi (che hanno ID univoci e sono generati da un array JavaScript). Quando l'utente digita una query di ricerca nella casella e preme Invio, tutti i paragrafi devono essere nascosti (ad esempio, il loro display
impostato su none
) se non corrispondono alla query.
La mia strategia attuale (usando jQuery):
- separata la stringa di query in un array di parole chiave dividendo sopra spazio bianco.
- Nascondere tutti i paragrafi con
$('p').hide()
. - Per ogni parola chiave, mostra un paragrafo che lo contiene con
$('p:contains("'+keyword+'")').show()
.
che è una funzione di ricerca estremamente limitata che è case-sensitive, tratta tutte le parole chiave come optional, e non fornisce operatori come and
, or
, o parentesi. È anche inefficiente perché passa attraverso ogni stringa una volta per ogni parola chiave, anche se è già stata abbinata.
per rendere la distinzione tra maiuscole e minuscole, è possibile convertire la parola chiave in minuscolo e verificare la corrispondenza i, e. keyword.toLowerCase() – Shreedhar