kevinwiedener: 2 Strings Prozentual vergleichen [die Zweite]

Hi Jungs, ich habe folgenden Code mit Hilfe aus diesem Forum in meinem Programm, der 2 Strings miteinander vergleichen soll:

[...]
for(var e = 0; e <= 1; e++) {
 CheckString = CheckArray[e];
 longest_string_length = (Aussage.length > CheckString.length) ? Aussage.length : CheckString.length;
 percent_of_conformity = 0;
 for(i = 0; i < longest_string_length; i++) {
  if(Aussage.substr(i,1) == CheckString.substr(i,1)){
   percent_of_conformity++;
  }
 }
 percent_of_conformity = parseInt((percent_of_conformity/longest_string_length)*10000)/100;
 if (percent_of_conformity > 65) {
   count++;
   document.writeln("<a href="" + CheckString + "">" + CheckString + "</a><br>");
 }
}
if (count == 0) {
 document.writeln("Keine &Uuml;bereinstimmungen");
}

So, was ich nun festgestellt habe, ist folgendes:

Wenn ich nun den String Aussage mit folgendem fülle:

abcdefghijklmnopqrstuvwxyz

und CheckString[0] mit

bcdefghijklmnopqrstuvwxyz

dann bekomme ich als Ergebnis 0%, was ja nicht richtig ist.

Oder z.B. bei abdefghijklmnopqrst (Aussage) und abcdefghijklmnopqrst (CheckString[x]), da müsste ja auch was um die 90% rauskommen.

Gibt es keine Funktion wie bei php, oder kennt niemand einen nahezu perfekten Code um zwei Strings auf "Gleichheit" zu prüfen? D.h. z.B. dass auch bei obigem Beispiel 95 oder 90 Prozent rauskommen.

Kann mir da jemand helfen?

Ich bitte Euch vielmals darum

Danke

Kevin

  1. Was ich weiter entdeckt habe:

    Es gibt zwei Methoden zwei Strings zu vergleichen:

    Einmal die Oliver [1993]-Methode, die allerdings etwas schlechter ist, und die Levenshtein-Methode, die soll genial sein.

    Die kann man doch mit Sicherheit in JavaScript übertragen, bzw. es gibt sie schon, oder?

    Kevin

  2. Moin!

    Hi Jungs, ich habe folgenden Code mit Hilfe aus diesem Forum in meinem Programm, der 2 Strings miteinander vergleichen soll:

    Doppelt posten ist hier nicht gern gesehen, vor allem, da dein alter Thread noch so klein und unscheinbar ist und somit noch ausgebaut werden kann.

    Javascript-Funktion gelöscht

    Wenn du deinen alten Thread benutzt hättest, wäre das Posten dieser Funktion garnicht notwendig gewesen, weil alle Teilnehmer sie hätten nachlesen können. ;) Nur mal so als Begründung, warum doppelt posten keine gute Idee ist.

    So, was ich nun festgestellt habe, ist folgendes:
    Wenn ich nun den String Aussage mit folgendem fülle:
    abcdefghijklmnopqrstuvwxyz
    und CheckString[0] mit
    bcdefghijklmnopqrstuvwxyz
    dann bekomme ich als Ergebnis 0%, was ja nicht richtig ist.

    Naja, gemäß der Funktion ist es richtig. Das war, was Norbert programmiert hatte.

    Oder z.B. bei abdefghijklmnopqrst (Aussage) und abcdefghijklmnopqrst (CheckString[x]), da müsste ja auch was um die 90% rauskommen.

    Gibt es keine Funktion wie bei php, oder kennt niemand einen nahezu perfekten Code um zwei Strings auf "Gleichheit" zu prüfen? D.h. z.B. dass auch bei obigem Beispiel 95 oder 90 Prozent rauskommen.

    Genau diese Frage hat Mulder dir in dem anderen Thread gestellt. Warum hast du sie ignoriert?

    Natürlich gibts diverse Möglichkeiten, Übereinstimmungen von einem String mit einem anderen String irgendwie zu überprüfen. Nur dazu mußt du eben sagen, was für Übereinstimmungen du willst - das kann man nicht raten, denn sowas hängt von der Aufgabenstellung ab.

    Gehe also bitte zurück zu deinem ersten Thread und beantworte Mulder seine Frage: </?m=51835&t=9377>. Und dann gehts ausschließlich dort weiter. Nur weil die Frage weiter unten steht, wird sie noch lange nicht ignoriert. Hier werden in der Regel alle Fragen beantwortet, solange sie noch nicht im Archiv gelandet sind und Diskussionsbedarf besteht.

    - Sven Rautenberg