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 September 2017.

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

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

Конструктор

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 Internationalization API Specification
# collator-objects

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

BCD tables only load in the browser

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