Avatar billede lone_a_p Praktikant
18. maj 2009 - 19:38 Der er 1 løsning

Søgefunktion eller sammenligningsfunktion

Kære eksperter,

Er der nogen, der vil hjælpe mig med at lave en søgefunktion i javascript.

Den skal kunne søge på eksakt og tage højde for stavefejl (selvfølgelig kan den ikke tage højde for alle, men nogle der ligner et produkt).

Jeg skal søge imellem madvarer, og jeg vil lige give eksempler på, hvad jeg mener med stavefejlene.

[Rigtigt stavet / skal medtages i søgninger]

beauvais / bouvais
chili / chilli
ketchup / ketsjup
sennep / senep
spegepølse / spejepølse
avocado / advokado
filet / fillet
mayonnaise / majonæse, mayonaise
rullekebab / ruldekebab
rødbede / rodbedde
sukkerærter / ærter


Man kan måske også kalde det en "sammenligningsfunktion". Hvis der er høj grad af match skal produktet medtages.

Håber på hjælp :)

Mvh Lone
Avatar billede ebusiness Nybegynder
23. maj 2009 - 17:01 #1
Jeg håber at du er vant til datahåndtering for viderekommende, for en stavefejlsretter er ikke nogen begynderopgave hvis det skal gøres ordentligt.

Den tilgang jeg vil foreslå er at du kun lægger en liste med de korrekte ord og alternative stavemåder/navne i filen. Ud fra den liste genererer du så på klientsiden vha. Javascript fejlstavninger af disse ord. Du laver simpelthen alle muligheder hvor et bogstav er fjernet, hvor et bogstav er erstattet med et andet eller hvor et bogstav er indsat. Det vil samlet set give nogle hundrede fejlstavninmger for hvert ord. Alle disse fejlstavninger samt de korrekte stavemåder bruger du som elementer i et objekt med den korrekte stavning som værdi. Altså:

stavemaader={}

//Her skal være flok nestede loops som genererer alle fejlstavninger
stavemaader[fejlstavet]=korretstavet
//Nestede loops slut

Når så brugeren har indtastet et ord genererer du ligeledes fejlstavninger for det og tjekker om en eller flere af de stavninger er at finde på listen.

Du vil som regel få rigtig mange matches som allesammen leder til det samme ord, du må selv filtrere så du kun får hvert ord en gang.

Note: Javascript objekter bliver sjældent brugt med tusindvis af elementer, jeg ved ikke om alle browsere er i stand til at køre det her i en acceptabel hastighed, men hvis der er problemer så bør du kunne hæve hastigheden betragteligt ved på listen kun at generere stavefejl med et manglende bogstav eller et bogstav skrevet to gange, du vil stadigvæk være i stand til at finde de fleste dobbelte stavefejl.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester