I have a website, something like an atlas of herbs, and I have a problem. I have a search bar and using javascript search() method I look which texts contain the entered keyword. Now, it works perfectly, but since the texts are in slovak, there are more letters than in English alphabet like: ľ,š,č,ť,ž,ý,á,í,é and many more. The search function works only with English alphabet. It does not throw an error but pretends that such word does not exist. How can I change it? By the way the texts are stored as strings in objects.
var vyhladavac = document.getElementById("vyhladavac");
var kluc; //slovo, ktore je hladane
var vysledky = [];
var cast_textu_kde_hladame;
function zobraz_vysledky(){
zmaz();
for (v = 0; v < vysledky.length; v++){
for (i = 0; i < zoznam.length; i++){
if (zoznam[i][0] == vysledky[v]){
switch(zoznam[i][1]){
case "b":
pridajEl("bylina");
break;
case "k":
pridajEl("ker");
break;
case "s":
pridajEl("strom");
break;
case "ks":
pridajEl("kstrom");
break;
case "pk":
pridajEl("poloker");
break;
case "o":
pridajEl("ostatne");
}
}
}
}
}
function hladaj(){ //funkcia hladaj prejde vsetky byliny v registri a vsetky texty ku kazdej byline. Ak najde tak vypluje nazov byliny
for(i = 0; i < register.length; i++){
if(register[i].zaklad.nazov.search(kluc) != -1 || register[i].zaklad.latinsky.search(kluc) != -1 || register[i].opis.popis.search(kluc) != -1 || register[i].opis.vyskyt.search(kluc) != -1 || register[i].zber.text.search(kluc) != -1 || register[i].liecba.liecitelstvo.search(kluc) != -1 || register[i].liecba.fandly.search(kluc) != -1 || register[i].recept.nazov.search(kluc) != -1 || register[i].recept.priprava.search(kluc) != -1 || register[i].upozornenie.text.search(kluc) != -1){
vysledky.push(register[i].zaklad.nazov);
}
for(a = 0; a < register[i].zber.mesiace; a++){ //for cyklus tu je preto, ze metodu search mozem pouzit len na string, nie na pole => musim prezerat kazdy string v poli
if(register[i].zber.mesiace[a].search(kluc) != -1){
vysledky.push(register[i].zaklad.nazov);
}
}
for(b = 0; b < register[i].zber.casti; b++){
if(register[i].zber.casti[b].search(kluc) != -1){
vysledky.push(register[i].zaklad.nazov);
}
}
for(c = 0; c < register[i].recept.ingrediencie; c++){
if(register[i].recept.ingrediencie[c].search(kluc) != -1){
vysledky.push(register[i].zaklad.nazov);
}
}
}
console.log(vysledky);
zobraz_vysledky();
}
function spracuj(event){ //funkcia spracuj caka kedy uzivatel stlaci enter, nasledne spusti funckiu hladaj
if(event.key == "Enter"){
kluc = new RegExp(vyhladavac.value, "i"); //RegExp je funkcia, ktora zmeni string na regular expression. Icko znamena, ze nezalezi ci je prve pismeno velke alebo male
hladaj();
}
}
vyhladavac.addEventListener("keydown", spracuj);Function hladaj searches all texts for each herb and zobraz_vysledky appends names of herbs with keyword to a HTML list.
Aucun commentaire:
Enregistrer un commentaire