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"
. ignorePunctuation
-
Определяет, должна ли игнорироваться пунктуация. Возможными значениями являются
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
наследуют следующие свойства из своего прототипа:
Методы
Экземпляры Collator
наследуют следующие методы из своего прототипа:
Примеры
Пример: использование 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