Logo Hardware.com.br
Flavio_vivinho
Flavio_vivin... Geek Registrado
2.5K Mensagens 173 Curtidas

[Resolvido] Localizar palavras ou parte dela em arquivo json.

#1 Por Flavio_vivin... 18/08/2016 - 16:00
Olá, pessoal!

Já dei pesquisada no Google mas não achei nada que ajudasse. Poderiam me ajudar por favor.

Precisava criar pequeno sistema de busca em um arquivo json, tipo como se faz em php e mysql, mas só que usando JavaScript puro, tipo:

Já tenho um código funcional na questão de pegar a palavra a ser pesquisa, mas só consigo retornar uma resposta satisfatória se for digitado todo o bloco, o que ficaria complicado no caso de localizar tendo que entrar com toda a frase.

O que já tenho pronto:
[code=javascript]
var a = [{"id":"1","local":"prateleira um","livro":"Servidores Linux FGH"},{"id":"2","local":"prateleira um","livro":"Redes por FGH"},{"id":"3","local":"prateleira um","livro":"As tendências fghardware são futuristicas"}];

function locLivro(legal) {
var i;
var bb;
var cc = "
  • "; for (i=0;i bb = a[i];
    if (bb.livro == legal) {
    cc += "
  • Livro: " + bb.livro + "
  • local: " + bb.local + "";
    }
    }
    cc += "
";
document.getElementById("sss").innerHTML = cc;
}
[/code]

Html
[code=html]




Res aqui
[/code]

Obs.: Não estou fazendo arquivo para biblioteca, somente usei tema para fácil compreensão.

O que precisava, seria inserir no input a expressão "fgh" e o código localizar dentro do json todas as palavras ou parte de palavras com o que foi digitado. Observe o termo "fghardware" de um dos livros.

Desde já agradeço a atenção e ajuda de todos.
Até+


===== Editado =====

Consegui fazer uma gambiarra desta forma:
[code=javascript]
var a = [{"id":"1","local":"prateleira um","livro":"Servidores Linux FGH"},{"id":"2","local":"prateleira um","livro":"Redes por FGH"},{"id":"3","local":"prateleira um","livro":"As tendências fghardware são futuristicas"}];

function locLivro(legal) {
var i;
var bb;
var cc = "
  • "; var busca;
    for (i=0;i bb = a[i];
    busca = bb.livro.indexOf(legal);
    if (legal != "") {
    if (busca >= 0) {
    cc += "
  • Livro: " + bb.livro + "";
    }
    }
    }
    cc += "
";
document.getElementById("sss").innerHTML = cc;
}
[/code]

Com este código eu consigo localizar palavras no texto como eu precisava, mas infelizmente a função está diferenciando maiúscula de minúscula, tipo: Procurar pelo mês de Agosto usando "ago" não funciona, somente se usar "Ago".

Vou pesquisar como escapar isto, mas se alguém souber como escapar isto será de grande ajuda.
Até+

==== Editado ====

Consegui resolver a questão das letras em maiúsculas e minúsculas com a função toLowerCase().
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal