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

186
Views
JavaScript: ordene una cadena que contenga letras y números distinguiendo entre mayúsculas y minúsculas usando Intl.Collator

Con el requisito de que necesito usar Intl.Collator (solo en inglés) para ordenar cadenas que contienen letras y números (en cualquier parte de la cadena). Necesito tenerlos ordenados de tal manera que:

  1. Las letras mayúsculas van antes de las minúsculas cuando son iguales (por ejemplo, A > a, a > b, a > B, A > B, A > b)
  2. Los números en la cadena se ordenan numéricamente (p. ej., 1 > 2, 1 > 10, 2 > 10)
  3. Los números se ordenan antes que las letras (números > letras) cuando están en la misma posición.

estoy usando esto:

 return new Intl.Collator(locale, { caseFirst: 'upper', numeric: true, sensitivity: 'variant' }) .compare(stringA, stringB);

Puede ver una explicación del objeto de opciones de Collator aquí: https://reference.codeproject.com/javascript/reference/global_objects/collator

Esto funciona bien cuando los números están al principio de la cadena:

 '9elliot' > '12morgan', '54mary' > '54Ralph', '23John' > '23john'

Pero me encontré con un caso en el que falla la clasificación y no puedo entender por qué:

 console.log(['f1oobar', 'F2oobar'].sort( new Intl.Collator('en', { caseFirst: 'upper', numeric: true, sensitivity: 'variant'}).compare )); // Prints ["f1oobar", "F2oobar"]

Necesito que se ordene como ["F2oobar", "f1oobar"] porque la "F" mayúscula debe ir antes de la "f" minúscula.

Probé todas las variantes de caseFirst , numeric y de sensitivity sin cambios en el resultado. Incluso eliminé el numeric y sensitivity sin cambios.

¿Quién puede explicar y/o resolver esto?

about 4 years ago · Juan Pablo Isaza
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!