| [ 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 toWellFormed() Methode von String-Werten gibt einen String zurck, bei dem alle einsamen Surrogate dieses Strings durch das Unicode-Ersatzzeichen U+FFFD ersetzt werden.
toWellFormed()
Keine.
Ein neuer String, der eine Kopie dieses Strings ist, bei dem alle einsamen Surrogate durch das Unicode-Ersatzzeichen U+FFFD ersetzt sind. Falls 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 hat das Konzept von Surrogatpaaren, das im Abschnitt UTF-16-Zeichen, Unicode-Codierungspunkte und Graphemes ausfhrlich beschrieben wird.
toWellFormed() durchluft die Code-Einheiten dieses Strings und ersetzt alle einsamen Surrogate durch das Unicode-Ersatzzeichen U+FFFD . Dies stellt sicher, dass der zurckgegebene String wohlgeformt ist und in Funktionen verwendet werden kann, die wohlgeformte Strings erwarten, wie z.B. encodeURI. Im Vergleich zu einer benutzerdefinierten Implementierung ist toWellFormed() effizienter, da Engine direkten Zugriff auf die interne Darstellung von Strings haben.
Wenn fehlerhaft geformte Strings in bestimmten Kontexten verwendet werden, wie z.B. bei TextEncoder, 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).
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 wirft einen Fehler, wenn der bergebene String nicht wohlgeformt ist. Dies kann vermieden werden, indem toWellFormed() verwendet wird, um den String zuerst in einen wohlgeformten String zu konvertieren.
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.toWellFormedString.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 |