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

String.prototype.charCodeAt() - 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.charCodeAt()

Baseline
Weitgehend verfgbar

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

Die charCodeAt() Methode von String-Werten gibt eine ganze Zahl zwischen 0 und 65535 zurck, die die UTF-16-Code-Einheit an dem angegebenen Index darstellt.

charCodeAt() indexiert den String immer als eine Sequenz von UTF-16-Code-Einheiten, sodass es mglicherweise einzelne Surrogate zurckgibt. Um den vollstndigen Unicode-Codepunkt am angegebenen Index zu erhalten, verwenden Sie String.prototype.codePointAt().

In diesem Artikel

Probieren Sie es aus

const sentence = "The quick brown fox jumps over the lazy dog.";

const index = 4;

console.log(
  `Character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(
    index,
  )}`,
);
// Expected output: "Character code 113 is equal to q"

Syntax

js
charCodeAt(index)

Parameter

index

Index des zurckzugebenden Zeichens, beginnend bei Null. In eine ganze Zahl umgewandelt undefined wird in 0 umgewandelt.

Rckgabewert

Eine ganze Zahl zwischen 0 und 65535, die den Wert der UTF-16-Code-Einheit des Zeichens am angegebenen index darstellt. Wenn index auerhalb des Bereichs von 0 str.length - 1 liegt, gibt charCodeAt() NaN zurck.

Beschreibung

Zeichen in einem String werden von links nach rechts indexiert. Der Index des ersten Zeichens ist 0, und der Index des letzten Zeichens in einem String namens str ist str.length - 1.

Unicode-Codepunkte reichen von 0 bis 1114111 (0x10FFFF). charCodeAt() gibt immer einen Wert zurck, der kleiner als 65536 ist, da die hheren Codepunkte durch ein Paar von 16-Bit-Surrogate-Pseudo-Zeichen dargestellt werden. Daher ist es notwendig, nicht nur charCodeAt(i), sondern auch charCodeAt(i + 1) abzurufen (als ob ein String mit zwei Zeichen manipuliert wird), oder stattdessen codePointAt(i) zu verwenden, um ein vollstndiges Zeichen mit einem Wert grer als 65535 zu erhalten. Weitere Informationen zu Unicode finden Sie unter UTF-16-Zeichen, Unicode-Codepunkte und Graphem-Cluster.

Beispiele

Verwendung von charCodeAt()

Das folgende Beispiel gibt 65 zurck, den Unicode-Wert fr A.

js
"ABC".charCodeAt(0); // returns 65

charCodeAt() kann einzelne Surrogate zurckgeben, die keine gltigen Unicode-Zeichen sind.

js
const str = "";
console.log(str.charCodeAt(0)); // 55362, or d842, which is not a valid Unicode character
console.log(str.charCodeAt(1)); // 57271, or dfb7, which is not a valid Unicode character

Um den vollstndigen Unicode-Codepunkt am angegebenen Index zu erhalten, verwenden Sie String.prototype.codePointAt().

js
const str = "";
console.log(str.codePointAt(0)); // 134071

Hinweis: Vermeiden Sie es, codePointAt() mit charCodeAt() neu zu implementieren. Die bersetzung von UTF-16-Surrogaten zu Unicode-Codepunkten ist komplex, und codePointAt() kann performanter sein, da es die interne Darstellung des Strings direkt verwendet. Installieren Sie ein Polyfill fr codePointAt(), falls notwendig.

Unten ist ein mgliches Algorithmus beschrieben, um ein Paar von UTF-16-Code-Einheiten in einen Unicode-Codepunkt umzuwandeln, adaptiert von der Unicode-FAQ:

js
// constants
const LEAD_OFFSET = 0xd800 - (0x10000 >> 10);
const SURROGATE_OFFSET = 0x10000 - (0xd800 << 10) - 0xdc00;

function utf16ToUnicode(lead, trail) {
  return (lead << 10) + trail + SURROGATE_OFFSET;
}
function unicodeToUTF16(codePoint) {
  const lead = LEAD_OFFSET + (codePoint >> 10);
  const trail = 0xdc00 + (codePoint & 0x3ff);
  return [lead, trail];
}

const str = "";
console.log(utf16ToUnicode(str.charCodeAt(0), str.charCodeAt(1))); // 134071
console.log(str.codePointAt(0)); // 134071

Spezifikationen

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

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page