Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda