[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare [Back]  [Original]

String.prototype.localeCompare() - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

String.prototype.localeCompare()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.

El mtodo localeCompare() retorna un nmero indicando si una cadena de carateres de referencia va antes, despus o si es la misma que la cadena dada en orden alfabtico.

In this article

Prubalo

const a = "rserv"; // With accents, lowercase
const b = "RESERVE"; // No accents, uppercase

console.log(a.localeCompare(b));
// Expected output: 1
console.log(a.localeCompare(b, "en", { sensitivity: "base" }));
// Expected output: 0

Los nuevos argumentos locales y options permiten a las aplicaciones especificar el idioma cuyo orden alfabtico se debe usar y configurar el comportamiento de la funcin. En implementaciones antiguas, que ignoran los argumentos locales y options, la localizacin y el orden alfabtico usados son completamente dependientes de la implementacin.

Sintaxis

js
localeCompare(compareString);
localeCompare(compareString, locales);
localeCompare(compareString, locales, options);

Parmetros

compareString

La cadena de caracteres contra la cual se compara la referenceStr.

locales y options

Estos argumentos configuran el comportamiento de la funcin y le permiten a las aplicaciones especificar el idioma cuyas convenciones de formato se deben usar. En implementaciones que ignoran los argumentos locales y options, la configuracin regional usada y la forma de la cadena devuelta son completamente dependientes de la implementacin.

Consulte el constructor de Intl.Collator() para obtener detalles sobre estos parmetros y cmo usarlos.

Valor de retorno

Un nmero negativo si referenceStr ocurre antes de compareString; positivo si referenceStr ocurre despus de compareString; 0 si son equivalentes.

Descripcin

Retorna un entero que indica si la cadena referenceStr va antes, despues o si es equivalente a la cadena compareString.

  • Negativo cuando referenceStr ocurre antes que compareString.
  • Positivo cuando referenceStr ocurre despus que compareString.
  • Retorna 0 si son equivalentes.

Alerta: No se debe asumir un valor de retorno exacto de -1 o 1.

Resultados de enteros positivos y negativos pueden variar entre navegadores (al igual que entre versiones de navegadores) ya que la especificacin del W3C solo requiere valores positivos y negativos. Algunos navegadores podran retornar -2 o 2, o incluso otro valor positivo o negativo.

Rendimiento

Cuando se compara un gran nmero de cadenas, como cuando se ordenan arreglos de gran tamao, es mejor crear un objeto Intl.Collator y usar la funcin provista por su propiedad compare.

Ejemplos

Uso de localeCompare()

js
// La letra "a" va antes que "c" por lo que entrega un valor negativo
"a".localeCompare("c"); // -2 o -1 (o cualquier otro valor negativo)

// Alfabticamente la palabra "check" va despus que "against" por lo que resulta
// en un valor positivo.
"check".localeCompare("against"); // 2 o 1 (u otro valor positivo)

// "a" y "a" son equivalentes por lo que resulta en un valor neutral de cero.
"a".localeCompare("a"); // 0

Ordenar un arreglo

localeCompare() permite ordenar un arreglo independientemente de maysculas y minsculas.

js
let items = ["rserv", "Premier", "Clich", "communiqu", "caf", "Adieu"];
items.sort((a, b) => a.localeCompare(b, "fr", { ignorePunctuation: true }));
// ['Adieu', 'caf', 'Clich', 'communiqu', 'Premier', 'rserv']

Determinar soporte del navegador para los argumentos extendidos

Los argumentos locales y options no estn soportados en todos los navegadores an.

Para determinar si una implementacin los soporta, usa el argumento "i" (un requerimiento de que las etiquetas de lenguaje ilegales sean rechazadas) y verifica si se lanza una excepcin RangeError:

js
function localeCompareSupportsLocales() {
  try {
    "foo".localeCompare("bar", "i");
  } catch (e) {
    return e.name === "RangeError";
  }
  return false;
}

Uso de locales

Los resultados provistos por localeCompare() varan por cada lenguaje. Para obtener el orden del lenguaje usado en la interfaz de usuario de tu aplicacin, se debe asegurar de especificar dicho lenguaje (y posiblemente algunos lenguajes por defecto) usando el argumento locales:

js
console.log("".localeCompare("z", "de")); // un valor negativo: en alemn,  se ordena antes que z
console.log("".localeCompare("z", "sv")); // un valor positivo: en sueco,  se ordena despus que z

Uso de options

Los resultados provistos por localeCompare() se pueden personalizar usando el argumento options:

js
// en alemn,  tiene a a como letra base
console.log("".localeCompare("a", "de", { sensitivity: "base" })); // 0

// en sueco,  y a son letras base separadas
console.log("".localeCompare("a", "sv", { sensitivity: "base" })); // un valor positivo

Ordenamiento numrico

js
// por defecto, "2" > "10"
console.log("2".localeCompare("10")); // 1

// numrico usando options:
console.log("2".localeCompare("10", undefined, { numeric: true })); // -1

// numrico usando la etiqueta de locales:
console.log("2".localeCompare("10", "en-u-kn-true")); // -1

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-string.prototype.localecompare
ECMAScript 2027 Internationalization API Specification
# sup-String.prototype.localeCompare

Compatibilidad con navegadores

Vase tambin


Web Proxy Viewer  |  New URL  |  Original Page