/* * requires levenshtein.js to be loaded first */ function distsort (_a, _b) { var a = _a.substring (0, _a.indexOf('::')); var b = _b.substring (0, _b.indexOf('::')); return a - b; } function fittingStrings (search, strings, cs) { var dists = new Array (); if (search.length <= 0) return dists; if (cs == false) _search = search.toUpperCase (); else _search = search; /* * hier suche ich die zur Eingabe am besten passenden Eintraege * in der Datenbank. Neben der eigentlichen distance ermittle ich noch * einen Wert distance - Ueberhang(Datenbankstring zu Suchstring) * Zweiter eignet sich besser zum Vergleich der Ergebnisse untereinander. */ for (str in strings) { if (cs == false) _str = strings[str].toUpperCase (); else _str = strings[str]; var dist = levenshtein (_search, _str); var delta = _str.length - _search.length; var subDist = (delta > 0)? dist - delta: dist; dists.push (subDist + '::' + dist + '::' + strings[str]); } dists.sort(distsort); return dists; }