los localeCompare() El método devuelve un número que indica si una referencia string viene antes o después, o es el mismo que el dado string en orden de clasificación.

El nuevo locales y options Los argumentos permiten que las aplicaciones especifiquen el lenguaje cuyo orden de clasificación debe usarse y personalicen el comportamiento de la función. En implementaciones más antiguas, que ignoran la locales y options argumentos, la configuración regional y el orden de clasificación utilizados son completamente dependientes de la implementación.

Sintaxis

localeCompare(compareString)localeCompare(compareString, locales)localeCompare(compareString, locales, options)

Parámetros

compareString
los string contra lo cual el referenceStr se compara.
locales y options

Estos argumentos personalizan el comportamiento de la función y permiten que las aplicaciones especifiquen el lenguaje cuyas convenciones de formato deben usarse. En implementaciones que ignoran la locales y options argumentos, la configuración regional utilizada y la forma de la string devueltos son completamente dependientes de la implementación.

Ver el Intl.Collator() constructor para obtener detalles sobre estos parámetros y cómo usarlos.

Valor devuelto

A negativo número si referenceStr ocurre antes compareString; positivo Si el referenceStr ocurre después de compareString; 0 si son equivalentes.

Descripción

Devuelve un entero que indica si el referenceStr viene antes, después o es equivalente a la compareString.

  • Negativo cuando el referenceStr ocurre antes compareString
  • Positivo cuando el referenceStr ocurre después compareString
  • Devoluciones 0 si son equivalentes

Advertencia: No confíe en valores de retorno exactos de -1 o 1!

Los resultados enteros negativos y positivos varían entre navegadores (así como entre versiones de navegadores) porque la especificación W3C solo exige valores negativos y positivos. Algunos navegadores pueden volver -2 o 2, o incluso algún otro valor negativo o positivo.

Rendimiento

Al comparar un gran número de cadenas, como al ordenar matrices grandes, es mejor crear una Intl.Collator objeto y utilizar la función proporcionada por su compare propiedad.

Ejemplos de

Utilizando localeCompare()

// The letter "a" is before "c" yielding a negative value'a'.localeCompare('c');// -2 or -1 (or some other negative value)// Alphabetically the word "check" comes after "against" yielding a positive value'check'.localeCompare('against');// 2 or 1 (or some other positive value)// "a" and "a" are equivalent yielding a neutral value of zero'a'.localeCompare('a');// 0

Ordenar un array

localeCompare() permite la clasificación que no distingue entre mayúsculas y minúsculas para un array.

let items =['réservé','Premier','Cliché','communiqué','café','Adieu'];
items.sort((a, b)=> a.localeCompare(b,'fr',ignorePunctuation:true));// ['Adieu', 'café', 'Cliché', 'communiqué', 'Premier', 'réservé']

Verifique el soporte del navegador para argumentos extendidos

los locales y options Los argumentos aún no son compatibles con todos los navegadores.

Para comprobar si una implementación los admite, utilice el "i" argumento (un requisito de que se rechacen las etiquetas de idioma ilegales) y busque un RangeError excepción:

functionlocaleCompareSupportsLocales()try'foo'.localeCompare('bar','i');catch(e)return e.name ==='RangeError';returnfalse;

Utilizando locales

Los resultados proporcionados por localeCompare() varían entre idiomas. Para obtener el orden de clasificación del idioma utilizado en la interfaz de usuario de su aplicación, asegúrese de especificar ese idioma (y posiblemente algunos idiomas alternativos) utilizando el locales argumento:

console.log('ä'.localeCompare('z','de'));// a negative value: in German, ä sorts before z
console.log('ä'.localeCompare('z','sv'));// a positive value: in Swedish, ä sorts after z

Utilizando options

Los resultados proporcionados por localeCompare() se puede personalizar con el options argumento:

// in German, ä has a as the base letter
console.log('ä'.localeCompare('a','de', sensitivity:'base'));// 0// in Swedish, ä and a are separate base letters
console.log('ä'.localeCompare('a','sv', sensitivity:'base'));// a positive value

Clasificación numérica

// by default, "2" > "10"
console.log("2".localeCompare("10"));// 1// numeric using options:
console.log("2".localeCompare("10",undefined,numeric:true));// -1// numeric using locales tag:
console.log("2".localeCompare("10","en-u-kn-true"));// -1

Especificaciones

Especificación
Especificación del lenguaje ECMAScript (ECMAScript)
#segundo-string.prototype.localecompare
Especificación de la API de internacionalización de ECMAScript (API de internacionalización de ECMAScript)
# sup-String.prototype.localeCompare

Compatibilidad del navegador

Escritorio Móvil
Cromo Borde Firefox explorador de Internet Ópera Safari WebView Android Chrome Android Firefox para Android Opera Android Safari en IOS Internet de Samsung
localeCompare 1 12 1 5.5 7 3 1 18 4 10.1 1 1.0
locales 24 12 29 11 15 10 No 26 56 No 10 1,5
options 24 12 29 11 15 10 No 26 56 No 10 1,5

Ver también

  • Intl.Collator