Spec-Zone.ru › JavaScript

Intl.Collator

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 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[Symbol.toStringTag]
Начальное значение свойства [Symbol.toStringTag] — строка "Intl.Collator". Это свойство используется в Object.prototype.toString().

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

Intl.Collator.prototype.compare()
Функция-геттер, которая сравнивает две строки в соответствии с порядком сортировки этого объекта Intl.Collator.
Intl.Collator.prototype.resolvedOptions()
Возвращает новый объект со свойствами, отражающими параметры локали и сопоставления, рассчитанные при инициализации объекта.

Примеры

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

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

console.log(new Intl.Collator().compare("a", "c")); // -1, or some other negative value
console.log(new Intl.Collator().compare("c", "a")); // 1, or some other positive value
console.log(new Intl.Collator().compare("a", "a")); // 0

Обратите внимание, что результаты, показанные в приведенном выше коде, могут различаться в зависимости от браузера и его версии. Это связано с тем, что значения зависят от реализации. То есть, спецификация требует лишь, чтобы значения "до" и "после" были отрицательными и положительными.

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

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

// in German, ä sorts with a
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1, or some other negative value

// in Swedish, ä sorts after z
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1, or some other positive value

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

Результаты, предоставляемые Intl.Collator.prototype.compare(), могут быть настроены с помощью аргумента options:

// in German, ä has a as the base letter
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0

// in Swedish, ä and a are separate base letters
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1, or some other positive value

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

Спецификация
ECMAScript® 2027 Internationalization API Specification
# collator-objects

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

Desktop Mobile Server
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
Collator
24
12
29
15
10
25
56
14
10
1.5
4.4
10
1.0.0
1.8
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Дополнительную информацию см. в конструкторе Collator().
Collator
24
12
29
15
10
25
56
14
10
1.5
4.4
10
1.0.0
1.8
13.0.0
0.12.0–13.0.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Когда указаны другие локали, экземпляр Collator незаметно возвращается к en-US. Чтобы сделать полные данные ICU (локали) доступными до версии 13, см. документацию Node.js по опции --with-intl и о том, как предоставить данные.
compare
24
12
29
15
10
25
56
14
10
1.5
4.4
10
1.0.0
1.8
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Дополнительную информацию см. в конструкторе Collator().
resolvedOptions
24
12
29
15
10
25
56
14
10
1.5
4.4
10
1.0.0
1.8
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Дополнительную информацию см. в конструкторе Collator().
supportedLocalesOf
24
12
29
15
10
25
56
14
10
1.5
4.4
10
1.0.0
1.8
13.0.0
0.12.0–13.0.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Чтобы сделать полные данные ICU (локали) доступными до версии 13, см. документацию Node.js по опции --with-intl и о том, как предоставить данные.

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

  • Intl
  • String.prototype.localeCompare()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API