This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Intl.Collator

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2017 г.⁩.

Объект Intl.Collator обеспечивает сравнение строк с учётом языка.

Интерактивный пример

console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("de").compare));
// Expected output: Array ["a", "ä", "z", "Z"]

console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("sv").compare));
// Expected output: Array ["a", "z", "Z", "ä"]

console.log(
  ["Z", "a", "z", "ä"].sort(
    new Intl.Collator("de", { caseFirst: "upper" }).compare,
  ),
);
// Expected output: Array ["a", "ä", "Z", "z"]

Конструктор

Intl.Collator()

Создаёт новый объект Collator.

Статические методы

Intl.Collator.supportedLocalesOf()

Возвращает массив, содержащий локали, которые поддерживаются без необходимости возврата к локали по умолчанию.

Свойства экземпляра

Эти свойства определены в Intl.Collator.prototype и есть у всех экземпляров Intl.Collator.

Intl.Collator.prototype.constructor

Функция-конструктор, создающая экземпляр объекта. Для экземпляров Intl.Collator начальным значением является конструктор Intl.Collator.

Intl.Collator.prototype[@@toStringTag]

Начальным значением свойства @@toStringTag является строка "Intl.Collator". Это свойство используется в Object.prototype.toString().

Методы экземпляра

Intl.Collator.prototype.compare()

Функция-геттер, которая сравнивает две строки в соответствии с правилами сортировки этого объекта Intl.Collator.

Intl.Collator.prototype.resolvedOptions()

Возвращает новый объект со свойствами, отражающими локаль и настройки сравнения, полученные при инициализации объекта.

Примеры

Использование Collator

Этот пример демонстрирует возможные результаты для строки, которая встречается до, после или на том же самом уровне, что и другая строка:

js
console.log(new Intl.Collator().compare("a", "c")); // -1 или другое отрицательное значение
console.log(new Intl.Collator().compare("c", "a")); // 1 или другое положительное значение
console.log(new Intl.Collator().compare("a", "a")); // 0

Обратите внимание, что результат, показанный в коде выше, может отличаться в зависимости от браузера и его версии, потому что возвращаемые значения зависят от реализации. Спецификация требует только чтобы для строки, встречающиеся до, значение было отрицательным, а после — положительным.

Использование параметра locales

Результаты, предоставляемые функцией Collator.prototype.compare() отличаются в зависимости от языка. Для получения порядка сортировки языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) используя параметр locales:

js
// В немецком языке буква ä идёт рядом с буквой a
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1 или другое отрицательное значение

// В шведском языке буква ä следует после буквы z
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1 или другое положительное значение

Использование параметра options

Результат, предоставляемый функцией Collator.prototype.compare(), может быть настроен с помощью параметра options:

js
// В немецком языке буква a является базовой для буквы ä
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0

// В шведском языке буквы ä и a являются двумя разными базовыми буквами
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1 или другое положительное значение

Спецификации

Specification
ECMAScript® 2026 Internationalization API Specification
# collator-objects

Совместимость с браузерами

Смотрите также