| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/toWellFormed | [Back] [Original] |
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 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.
toWellFormed()
Keine.
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).
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).
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"
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.
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"
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-string.prototype.towellformed |
String.prototype.toWellFormed in core-jsString.prototype.toWellFormed von es-shimsString.prototype.isWellFormed()String.prototype.normalize()Stringanchor()at()big()blink()bold()charAt()charCodeAt()codePointAt()concat()endsWith()fixed()fontcolor()fontsize()includes()indexOf()isWellFormed()italics()lastIndexOf()link()localeCompare()match()matchAll()normalize()padEnd()padStart()repeat()replace()replaceAll()search()slice()small()split()startsWith()strike()sub()substr()substring()sup()toLocaleLowerCase()toLocaleUpperCase()toLowerCase()toString()toUpperCase()toWellFormed()trim()trimEnd()trimStart()valueOf()[Symbol.iterator]()Object/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |