Intl.Collator

Сводка

Объект Intl.Collator является конструктором сортировщиков — объектов, включающих языка-зависимое сравнение строк.

Синтаксис

new Intl.Collator([locales[, options]])
Intl.Collator.call(this[, locales[, options]])

Параметры

locales

Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента locales смотрите на странице, посвящённой объекту Intl. Разрешены следующие ключи расширения Unicode:

co

Варианты сортировки для конкретных локалей. Возможные значения включают в себя: "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad" и "unihan". Значения "standard" и "search" игнорируются; они заменяются свойством usage аргумента options (смотрите ниже).

kn

Определяет, должно ли использоваться числовое сравнение, то есть, чтобы выполнялось условие "1" < "2" < "10". Возможными значениями являются "true" и "false". Эта опция может быть установлена через свойство аргумента options, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options имеет приоритет.

kf

Определяет, буквы какого регистра должны идти первыми — верхнего или нижнего. Возможными значениями являются "upper", "lower" и "false" (используется значение по умолчанию из локали). Эта опция может быть установлена через свойство аргумента options, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options имеет приоритет.

options

Необязательный параметр. Объект с некоторыми или всеми из следующих свойств:

localeMatcher

Используемый алгоритм сопоставления локалей. Возможными значениями являются "lookup" и "best fit"; значением по умолчанию является "best fit". Информацию по этой опции смотрите на странице, посвящённой объекту Intl.

usage

Определяет, используется ли сравнение для сортировки или для поиска совпадающих строк. Возможными значениями являются "sort" и "search"; значением по умолчанию является "sort".

sensitivity

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

  • "base": считаются различными только строки, отличающиеся базовыми буквами. Примеры: a ≠ b, a = á, a = A.
  • "accent": считаются различными только строки, отличающиеся базовыми буквами или акцентами и другими диакритическими знаками. Примеры: a ≠ b, a ≠ á, a = A.
  • "case": считаются различными только строки, отличающиеся базовыми буквами или регистром букв. Примеры: a ≠ b, a = á, a ≠ A.
  • "variant": считаются различными строки, отличающиеся базовыми буквами, акцентами и другими диакритическими знаками или регистром букв. Также во внимание могут приниматься и другие различия. Примеры: a ≠ b, a ≠ á, a ≠ A.

Значением по умолчанию является "variant" при использовании свойства usage, равного "sort", и зависит от локали при использовании свойства usage, равного "search".

ignore­Punctua­tion

Определяет, должна ли игнорироваться пунктуация. Возможными значениями являются true и false; значением по умолчанию является false.

numeric

Определяет, должно ли использоваться числовое сравнение, то есть, чтобы выполнялось условие "1" < "2" < "10". Возможными значениями являются true и false; значением по умолчанию является false. Эта опция может быть установлена через свойство аргумента options, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options имеет приоритет. Реализации не обязаны поддерживать это свойство.

caseFirst

Определяет, буквы какого регистра должны идти первыми — верхнего или нижнего. Возможными значениями являются "upper", "lower" и "false" (используется значение по умолчанию из локали); значением по умолчанию является "false". Эта опция может быть установлена через свойство аргумента options, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options имеет приоритет. Реализации не обязаны поддерживать это свойство.

Описание

Свойства

Intl.Collator.prototype (en-US)

Позволяет добавлять свойства ко всем объектам.

Методы

Intl.Collator.supportedLocalesOf()

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

Экземпляры объекта Collator

Свойства

Экземпляры Collator наследуют следующие свойства из своего прототипа:

{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Properties')}}

Методы

Экземпляры Collator наследуют следующие методы из своего прототипа:

{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Methods')}}

Примеры

Пример: использование Collator

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

js

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

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

Пример: использование аргумента locales

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

js

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

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

Пример: использование аргумента 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"));
// → положительное значение

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

Спецификация Статус Комментарии
ECMAScript Internationalization API 1.0 (ECMA-402)
Определение 'Intl.Collator' в этой спецификации.
Стандарт Изначальное определение.

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

BCD tables only load in the browser

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

{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}