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

String.prototype.charCodeAt() - JavaScript | MDN

Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.

View in English Always switch to English

String.prototype.charCodeAt()

Baseline
Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since julho de 2015.

O mtodo charCodeAt() retorna um nmero inteiro entre 0 e 65535 que representa a unidade de cdigo UTF-16 no ndice fornecido. A unidade de cdigo UTF-16 corresponde ao ponto de cdigo Unicode para pontos de cdigos representveis em uma nica unidade de cdigo UTF-16, mas tambm pode ser a primeira unidade de cdigo de um par substituto no representvel em uma nica unidade de cdigo UTF-16. Po exemplo: pontos de cdigo Unicode > (0x10000). Se voc quer o valor do ponto de cdigo inteiro, use codePointAt().

In this article

Sintaxe

str.charCodeAt(index)

Parmetros

index

Um inteiro maior ou igual a 0 e menor que o comprimento da string. Se no for um nmero, o padro ser 0.

Valor retornado

Um nmero representando o valor de unidade de cdigo UTF-16 do caractere no ndice fornecido. O valor NaN retornado se o ndice estiver fora do intervalo aceitvel.

Descrio

Os pontos de cdigo Unicode variam de 0 a 1114111 (0x10FFFF). Os primeiros 128 pontos de cdigo Unicode so uma correspondncia direta da codificao de caracteres ASCII. (Para informaes sobre Unicode, veja o JavaScript Guide.)

Nota: O charCodeAt() sempre retornar um valor menor do que 65536. Isso ocorre pois os pontos de cdigo mais altos so representados por um par de pseudo-caracteres "substitutos" (de menor valor) que so usados para compreender o caracter real.

Por isso, para examinar (ou reproduzir) o caractere completo para valores de caracteres individuais de valor 65536 e acima, necessrio recuperar no apenas o charCodeAt(i), mas tambm o charCodeAt(i+1) (como se examinando/reproduzindo a string com duas letras), ou usar o codePointAt(i). Veja o exemplo 2 e 3 (abaixo).

Compatibilidade com verses anteriores: Em verses histricas (como JavaScript 1.2) o mtodo charCodeAt() retorna um nmero indicando o valor de conjunto de cdigos ISO-Latin-1 do caractere no dado ndice. O conjunto de cdigos ISO-Latin-1 varia de 0 a 255. Os primeiros 128 (do 0 ao 127) so uma correspondncia direta ao conjunto de caracteres ASCII.

Exemplos

Usando charCodeAt()

O exemplo a seguir retorna 65, o valor Unicode para A.

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

Corrigindo o charCodeAt() para manipular caracteres de Plano Multilingual no Bsico se sua presena na string desconhecida

Essa verso pode ser usada em loops for e afins quando no sabemos se caracteres de Plano Multilingual no Bsico existem antes da posio do ndice especificado.

js
function fixedCharCodeAt(str, idx) {
  // ex. fixedCharCodeAt('\uD800\uDC00', 0); // 65536
  // ex. fixedCharCodeAt('\uD800\uDC00', 1); // false
  idx = idx || 0;
  var code = str.charCodeAt(idx);
  var hi, low;

  // Substituto elevado (poderia mudar o ltimo hex para 0xDB7F para tratar
  // substitutos privados elevados como caracteres nicos)
  if (0xd800 <= code && code <= 0xdbff) {
    hi = code;
    low = str.charCodeAt(idx + 1);
    if (isNaN(low)) {
      throw "High surrogate not followed by low surrogate in fixedCharCodeAt()";
    }
    return (hi - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;
  }
  if (0xdc00 <= code && code <= 0xdfff) {
    // Low surrogate
    // Retornamos false para permitir os loops pularem essa iterao j que j deveria
    //ter tratado os substitutos elevados acima, na iterao anterior
    return false;
    /*hi = str.charCodeAt(idx - 1);
    low = code;
    return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;*/
  }
  return code;
}

Especificaes

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

Veja tambm


Web Proxy Viewer  |  New URL  |  Original Page