Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Die normalize()-Methode von String-Werten gibt die Unicode-Normalisierungsform dieses Strings zurück.
Einer der Werte "NFC", "NFD", "NFKC" oder "NFKD", der die Unicode-Normalisierungsform angibt. Wenn ausgelassen oder undefined, wird "NFC" verwendet.
Diese Werte haben folgende Bedeutungen:
"NFC"Kanonische Dekomposition, gefolgt von kanonischer Komposition.
"NFD"Kanonische Dekomposition.
"NFKC"Kompatibilitätsdekomposition, gefolgt von kanonischer Komposition.
"NFKD"Kompatibilitätsdekomposition.
Ein String, der die Unicode-Normalisierungsform des gegebenen Strings enthält.
Wird ausgelöst, wenn form nicht einer der oben angegebenen Werte ist.
Unicode weist jedem Zeichen einen einzigartigen numerischen Wert, einen Codepunkt, zu. Zum Beispiel wird der Codepunkt für "A" als U+0041 angegeben. Manchmal können jedoch mehr als ein Codepunkt oder eine Sequenz von Codepunkten dasselbe abstrakte Zeichen darstellen – das Zeichen "ñ" zum Beispiel kann durch einen der folgenden dargestellt werden:
Da die Codepunkte jedoch unterschiedlich sind, wird die Zeichenfolgenvergleichung sie nicht als gleich behandeln. Und da die Anzahl der Codepunkte in jeder Version unterschiedlich ist, haben sie sogar unterschiedliche Längen.
Die normalize()-Methode hilft, dieses Problem zu lösen, indem sie einen String in eine normalisierte Form konvertiert, die für alle Sequenzen von Codepunkten, die dasselbe Zeichen darstellen, einheitlich ist. Es gibt zwei Hauptnormalisierungsformen, eine basierend auf kanonischer Äquivalenz und die andere auf Kompatibilität.
In Unicode haben zwei Sequenzen von Codepunkten kanonische Äquivalenz, wenn sie dieselben abstrakten Zeichen darstellen und optisch und vom Verhalten her immer gleich erscheinen sollten (zum Beispiel sollten sie immer auf die gleiche Weise sortiert werden).
Sie können normalize() mit den Argumenten "NFD" oder "NFC" verwenden, um eine Form des Strings zu erzeugen, die für alle kanonisch äquivalenten Strings gleich ist. Im folgenden Beispiel normalisieren wir zwei Darstellungen des Zeichens "ñ":
Beachten Sie, dass die Länge der normalisierten Form unter "NFD" 2 ist. Das liegt daran, dass "NFD" Ihnen die zerlegte Version der kanonischen Form gibt, in der einzelne Codepunkte in mehrere kombinierende aufgeteilt werden. Die zerlegte kanonische Form für "ñ" ist "\u006E\u0303".
Sie können "NFC" angeben, um die zusammengesetzte kanonische Form zu erhalten, in der mehrere Codepunkte durch einzelne Codepunkte ersetzt werden, wenn möglich. Die zusammengesetzte kanonische Form für "ñ" ist "\u00F1":
In Unicode sind zwei Sequenzen von Codepunkten kompatibel, wenn sie dieselben abstrakten Zeichen darstellen und in einigen — aber nicht unbedingt allen — Anwendungen gleich behandelt werden sollten.
Alle kanonisch äquivalenten Sequenzen sind ebenfalls kompatibel, aber nicht umgekehrt.
Zum Beispiel:
In einigen Aspekten (wie Sortierung) sollten sie als äquivalent behandelt werden – in anderen (wie der visuellen Darstellung) jedoch nicht, daher sind sie nicht kanonisch äquivalent.
Sie können normalize() mit den Argumenten "NFKD" oder "NFKC" verwenden, um eine Form des Strings zu erzeugen, die für alle kompatiblen Strings gleich ist:
Bei der Anwendung der Kompatibilitätsnormalisierung ist es wichtig zu überlegen, was Sie mit den Zeichenfolgen vorhaben, da die normalisierte Form nicht für alle Anwendungen geeignet sein könnte. Im obigen Beispiel ist die Normalisierung für die Suche geeignet, da sie einem Benutzer ermöglicht, die Zeichenfolge durch die Suche nach "f" zu finden. Aber sie mag für die Anzeige nicht geeignet sein, da die visuelle Darstellung unterschiedlich ist.
Wie bei der kanonischen Normalisierung können Sie nach zerlegten oder zusammengesetzten kompatiblen Formen fragen, indem Sie "NFKD" oder "NFKC" entsprechend übergeben.
| ECMAScript® 2027 Language Specification # sec-string.prototype.normalize |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.