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

189
Vistas
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
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