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.

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