JavaScript/Objekte/String/codePointAt

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode String.codePointAt() ermittelt die Nummer des Unicode Codepoints zurück, die in einer Zeichenkette an einer bestimmten Zeichenposition steht. Dabei wird berücksichtigt, dass die Zeichen oberhalb der Unicode BMP nicht mit einem JavaScript-Zeichen abbildbar sind, sondern wegen der vewendeten UTF-16-Codierung durch zwei Surrogatzeichen dagestellt werden.

Browserunterstützung
caniuse.com

let char = String.codePointAt(index)

Erwartet folgende Parameter:

  • index: die gewünschte Zeichen-Position
Beachten Sie: Die Methode liefert nicht den n-ten Codepoint in einem String, sondern den Codepoint, der an der n-ten Zeichenposition steht.

Anwendungsbeispiel

Beispiel
 let text = "Hallo 😀";
 console.log(text.charCodeAt(6).toString(16)); // Ausgabe: d83d
 console.log(text.charCodeAt(7).toString(16)); // Ausgabe: de00
 console.log(text.codePointAt(6).toString(16)); // Ausgabe: 1f600
 console.log(text.codePointAt(7).toString(16)); // Ausgabe: de00
Das Beispiel weist der Variablen text einen String zu, der ein Unicode-Emoji enthält. Diese sind in der Plane 1 zu finden und werden daher durch Surrogatzeichen dargestellt. Die beiden ersten Ausgaben mit charCodeAt liefern die Zeichencodes dieser Surrogatzeichen. Verwendet man codePointAt und greift auf das erste der beiden Surrogatzeichen zu, wird das Surrogat-Paar erkannt und der Codepoint korrekt ermittelt. Greift man auf das zweite Surrogatzeichen zu, erhält man nur die Codepoint-Nummer des Low-Surrogats.

Weblinks

Abgerufen von „http://wiki.selfhtml.org/index.php?title=JavaScript/Objekte/String/codePointAt&oldid=97810"