Ersetzt Umlaute in JS

Ich bin den Vergleich von Zeichenfolgen und müssen ersetzt Umlaute in JS, aber es scheint JS nicht erkennen, die Umlaute in den strings. Der text kommt aus der Datenbank und im browser die Umlaute nicht zeigen, in Ordnung.

function replaceUmlauts(string)
{
    value = string.toLowerCase();
    value = value.replace(/ä/g, 'ae');
    value = value.replace(/ö/g, 'oe');
    value = value.replace(/ü/g, 'ue');
    return value;
}

Als such-Muster, die ich versuchte:

  • "ä", "ö", "ü"
  • /ä/, /ö/, /ü/
  • "ä", "ö", "ü" (auch total verzweifelt ;-))

Sicher sein, dass es nicht eine Sache mit der ersetzen-Funktion habe ich versucht indexOf:

console.log(value.indexOf('ä'));

Aber die Ausgabe mit allen mustern ist: -1

Also ich denke, es ist eine Art von einem problem mit der Kodierung, aber wie gesagt auf der Seite die Umlaute tun einfach nur gut Aussehen.

Irgendwelche Ideen? Dies scheint so einfach...

BEARBEITEN:
Auch wenn ich fand meine Antwort, das problem wurde nicht wirklich gelöst "an der Wurzel" (die Codierung).
Dies ist meine Seite-Codierung:

<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

Der Datenbank: utf8_general_ci

Scheint völlig in Ordnung für mich.

  • Welche Codierung Sie verwenden in Ihrer Datenbank und welche Codierung Sie verwenden in Ihrer web-Seite?
  • Und was ist string??? Melden Sie es. Ihre Ansätze funktionieren würde, aber wie Sie sehen können von Ihrem indexOf, Ihre Zeichenfolge nicht enthalten ein "ä".
  • "bäg".replace(/ä/g, "ae"); // ==> "baeg", so etwas ist wohl aus mit dem encoding
  • Ich loggte mich den string und das ä wird an der Konsole angezeigt, vor und nach der Ersetzung - es ist definitiv da 🙂 ich schrieb meine Kodierung in der Frage, die scheint völlig in Ordnung mit mir, das ist das reasion ich entschied mich für die Antwort von Oleg. Vielen Dank an alle von Euch - und ja, auf diese Weise das problem nicht wirklich gelöst ", es ist root"
InformationsquelleAutor SamiSalami | 2012-07-25
Schreibe einen Kommentar