Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. String
  6. toWellFormed()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

String.prototype.toWellFormed()

Baseline 2023
Newly available

Since ⁨October 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

DietoWellFormed() Methode vonString-Werten gibt einen String zurück, bei dem alleeinsamen Surrogate dieses Strings durch das Unicode-Ersatzzeichen U+FFFD ersetzt werden.

Syntax

js
toWellFormed()

Parameter

Keine.

Rückgabewert

Ein neuer String, der eine Kopie dieses Strings ist, bei dem alle einsamen Surrogate durch das Unicode-Ersatzzeichen U+FFFD ersetzt sind. Fallsstrwohlgeformt ist, wird dennoch ein neuer String zurückgegeben (im Wesentlichen eine Kopie vonstr).

Beschreibung

Strings in JavaScript sind UTF-16-codiert. Die UTF-16-Codierung hat das Konzept vonSurrogatpaaren, das im AbschnittUTF-16-Zeichen, Unicode-Codierungspunkte und Graphemes ausführlich beschrieben wird.

toWellFormed() durchläuft die Code-Einheiten dieses Strings und ersetzt alle einsamen Surrogate durch dasUnicode-Ersatzzeichen U+FFFD. Dies stellt sicher, dass der zurückgegebene String wohlgeformt ist und in Funktionen verwendet werden kann, die wohlgeformte Strings erwarten, wie z.B.encodeURI. Im Vergleich zu einer benutzerdefinierten Implementierung isttoWellFormed() effizienter, da Engine direkten Zugriff auf die interne Darstellung von Strings haben.

Wenn fehlerhaft geformte Strings in bestimmten Kontexten verwendet werden, wie z.B. beiTextEncoder, werden sie automatisch mithilfe des gleichen Ersatzzeichens in wohlgeformte Strings konvertiert. Wenn einsame Surrogate gerendert werden, erscheinen sie auch als Ersatzzeichen (ein Rhombus mit einem Fragezeichen darin).

Beispiele

Verwendung von toWellFormed()

js
const strings = [  // Lone leading surrogate  "ab\uD800",  "ab\uD800c",  // Lone trailing surrogate  "\uDFFFab",  "c\uDFFFab",  // Well-formed  "abc",  "ab\uD83D\uDE04c",];for (const str of strings) {  console.log(str.toWellFormed());}// Logs:// "ab�"// "ab�c"// "�ab"// "c�ab"// "abc"// "ab😄c"

Fehlervermeidung in encodeURI()

encodeURI wirft einen Fehler, wenn der übergebene String nicht wohlgeformt ist. Dies kann vermieden werden, indemtoWellFormed() verwendet wird, um den String zuerst in einen wohlgeformten String zu konvertieren.

js
const illFormed = "https://example.com/search?q=\uD800";try {  encodeURI(illFormed);} catch (e) {  console.log(e); // URIError: URI malformed}console.log(encodeURI(illFormed.toWellFormed())); // "https://example.com/search?q=%EF%BF%BD"

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.towellformed

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp