Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
¿Puede `toLowerCase` cambiar la longitud de una cadena JavaScript?

¿Es posible que string.length !== string.toLowerCase().length ?

Sé que es posible para toUpperCase , dadas las respuestas en Change to .length with toUpperCase? , pero no sé si es posible para toLowerCase .

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Sí, es posible, no todas las asignaciones de mayúsculas y minúsculas son de uno a uno, también pueden ser de uno a muchos, como ha visto al pasar de minúsculas a mayúsculas, lo mismo puede aplicarse al pasar de mayúsculas a minúsculas. Esto se puede ver con el carácter LETRA I MAYÚSCULA LATINA CON PUNTO ARRIBA (0x0130):

 const char = "\u0130"; // İ const charLower = char.toLowerCase(); console.log(char, char.length); // İ 1 console.log(charLower, charLower.length); // i̇ 2 console.log(char.length !== charLower.length); // true

Hay una nota en la especificación que también destaca este comportamiento en la sección 22.1.3.26 :

El mapeo de casos de algunos puntos de código puede producir múltiples puntos de código. En este caso, la cadena de resultado puede no tener la misma longitud que la cadena de origen.

Puede encontrar una lista de asignaciones de casos especiales (es decir, asignaciones de casos que no son necesariamente uno a uno) en la base dedatos de caracteres Unicode (UCD). Como se indica, la longitud de algunos caracteres solo crece bajo ciertas condiciones, algunas de las cuales dependen de contextos y lugares específicos:

 // From the UCD for SpecialCasings, another example can be found: // 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK // The above means '012E' maps to the lower case of '012F 0307' if: // - the locale is Lithuanian (lt) // - the suffix contains a character of combining class 230 (Above) // \u0300 is a character with such a combining class value (list found here: https://www.compart.com/en/unicode/combining/230) const grapheme = '\u012E\u0300'; // Į̀ (Į + ̀ ) console.log(grapheme, grapheme.length); // Į̀ 2 const lowerStd = grapheme.toLowerCase(); console.log(lowerStd, lowerStd.length); // į̀ 2 (still fine) const lowerLocale = grapheme.toLocaleLowerCase('lt'); console.log(lowerLocale, lowerLocale.length); // į̇̀ 3 (now 3 when using lt as the locale)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda