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
Спецификации
Совместимость с браузерами
| 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 и о том, как предоставить данные. |
Смотрите также
© 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