Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

136
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!