[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/toWellFormed [Back]  [Original]

String.prototype.toWellFormed() - JavaScript | MDN

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

View in English Always switch to English

String.prototype.toWellFormed()

Baseline
Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Oktober 2023 browserbergreifend verfgbar.

Die Methode toWellFormed() von String-Werten gibt einen String zurck, in dem alle einzelstehenden Surrogate des ursprnglichen Strings durch das Unicode-Ersatzzeichen U+FFFD ersetzt wurden.

In diesem Artikel

Syntax

js
toWellFormed()

Parameter

Keine.

Rckgabewert

Ein neuer String, der eine Kopie des ursprnglichen Strings ist, wobei alle einzelstehenden Surrogate durch das Unicode-Ersatzzeichen U+FFFD ersetzt wurden. Wenn str wohlgeformt ist, wird dennoch ein neuer String zurckgegeben (im Wesentlichen eine Kopie von str).

Beschreibung

Strings in JavaScript sind UTF-16-codiert. Die UTF-16-Codierung verwendet sogenannte Surrogatpaare, die im Abschnitt UTF-16-Zeichen, Unicode-Codepunkte und Graphemcluster ausfhrlich erlutert werden.

toWellFormed() durchluft die Codeeinheiten des Strings und ersetzt jedes einzelstehende Surrogat durch das Unicode-Ersatzzeichen U+FFFD . Dadurch ist der zurckgegebene String wohlgeformt und kann in Funktionen verwendet werden, die wohlgeformte Strings erwarten, beispielsweise encodeURI. Im Vergleich zu einer eigenen Implementierung ist toWellFormed() effizienter, da JavaScript-Engines direkt auf die interne Darstellung von Strings zugreifen knnen.

Wenn nicht wohlgeformte Strings in bestimmten Kontexten verwendet werden, etwa mit TextEncoder, werden sie automatisch mit demselben Ersatzzeichen in wohlgeformte Strings umgewandelt. Auch bei der Darstellung einzelstehender Surrogate wird das Ersatzzeichen angezeigt (eine Raute mit einem Fragezeichen darin).

Beispiele

toWellFormed() verwenden

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"
// "abc"
// "ab"
// "cab"
// "abc"
// "abc"

Fehler in encodeURI() vermeiden

encodeURI lst einen Fehler aus, wenn der bergebene String nicht wohlgeformt ist. Dies lsst sich vermeiden, indem Sie den String zuerst mit toWellFormed() in einen wohlgeformten String umwandeln.

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

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-string.prototype.towellformed

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page