Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. String — Cadena de caracteres
  6. String.prototype.localeCompare()

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

String.prototype.localeCompare()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

El métodolocaleCompare() retorna un número indicando si una cadena decarateres de referencia va antes, después o si es la misma que la cadena dada enorden alfabético.

Pruébalo

const a = "réservé"; // With accents, lowercaseconst b = "RESERVE"; // No accents, uppercaseconsole.log(a.localeCompare(b));// Expected output: 1console.log(a.localeCompare(b, "en", { sensitivity: "base" }));// Expected output: 0

Los nuevos argumentoslocales yoptions permiten a las aplicacionesespecificar el idioma cuyo orden alfabético se debe usar y configurar elcomportamiento de la función. En implementaciones antiguas, que ignoran losargumentoslocales yoptions, la localización y el orden alfabético usadosson completamente dependientes de la implementación.

Sintaxis

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

Parámetros

compareString

La cadena de caracteres contra la cual se compara lareferenceStr.

locales yoptions

Estos argumentos configuran el comportamiento de la función y le permitena las aplicaciones especificar el idioma cuyas convenciones de formato sedeben usar. En implementaciones que ignoran los argumentoslocales yoptions, la configuración regional usada y la forma de la cadena devuelta soncompletamente dependientes de la implementación.

Consulte elconstructor deIntl.Collator()para obtener detalles sobre estos parámetros y cómo usarlos.

Valor de retorno

Un númeronegativo sireferenceStr ocurre antes decompareString;positivo sireferenceStr ocurre después decompareString;0 si sonequivalentes.

Descripción

Retorna un entero que indica si la cadenareferenceStr va antes, despues o sies equivalente a la cadenacompareString.

  • Negativo cuandoreferenceStr ocurre antes quecompareString.
  • Positivo cuandoreferenceStr ocurre después quecompareString.
  • Retorna0 si son equivalentes.

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

Resultados de enteros positivos y negativos pueden variar entre navegadores(al igual que entre versiones de navegadores) ya que la especificación del W3Csolo requiere valores positivos y negativos. Algunos navegadores podríanretornar-2 o2, o incluso otro valor positivo o negativo.

Rendimiento

Cuando se compara un gran número de cadenas, como cuando se ordenan arreglos degran tamaño, es mejor crear un objetoIntl.Collator y usar la funciónprovista por su propiedadcompare.

Ejemplos

Uso delocaleCompare()

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)// Alfabéticamente la palabra "check" va después 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 mayúsculas yminúsculas.

js
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é']

Determinar soporte del navegador para los argumentos extendidos

Los argumentoslocales yoptions no están soportados en todos losnavegadores aún.

Para determinar si una implementación los soporta, usa el argumento"i" (unrequerimiento de que las etiquetas de lenguaje ilegales sean rechazadas) yverifica si se lanza una excepciónRangeError:

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

Uso delocales

Los resultados provistos porlocaleCompare() varían por cada lenguaje. Paraobtener el orden del lenguaje usado en la interfaz de usuario de tu aplicación,se debe asegurar de especificar dicho lenguaje (y posiblemente algunos lenguajespor defecto) usando el argumentolocales:

js
console.log("ä".localeCompare("z", "de")); // un valor negativo: en alemán, ä se ordena antes que zconsole.log("ä".localeCompare("z", "sv")); // un valor positivo: en sueco, ä se ordena después que z

Uso deoptions

Los resultados provistos porlocaleCompare() se pueden personalizar usando elargumentooptions:

js
// en alemán, ä tiene a a como letra baseconsole.log("ä".localeCompare("a", "de", { sensitivity: "base" })); // 0// en sueco, ä y a son letras base separadasconsole.log("ä".localeCompare("a", "sv", { sensitivity: "base" })); // un valor positivo

Ordenamiento numérico

js
// por defecto, "2" > "10"console.log("2".localeCompare("10")); // 1// numérico usando options:console.log("2".localeCompare("10", undefined, { numeric: true })); // -1// numérico usando la etiqueta de locales:console.log("2".localeCompare("10", "en-u-kn-true")); // -1

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.localecompare
ECMAScript® 2026 Internationalization API Specification
# sup-String.prototype.localeCompare

Compatibilidad con navegadores

Véase también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp