Сводка
Объект 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- Позволяет добавлять свойства ко всем объектам.
Методы
Intl.Collator.supportedLocalesOf()- Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без отката к локали по умолчанию среды выполнения.
Экземпляры объекта Collator
Свойства
Экземпляры Collator наследуют следующие свойства из своего прототипа:
Intl.Collator.prototype.constructor- Ссылка на
Intl.Collator. Intl.Collator.prototype.compare- Геттер; возвращает функцию, сравнивающую две строки согласно порядку сортировки этого объекта
Collator.
Методы
Экземпляры Collator наследуют следующие методы из своего прототипа:
Intl.Collator.prototype.resolvedOptions()- Возвращает новый объект со свойствами, отражающими локаль и опции сравнения строк, вычисленные при инициализации объекта.
Примеры
Пример: использование Collator
Следующий пример демонстрирует различные потенциальные результаты для строки, находящейся до, после или на том же самом уровне, что и другая строка:
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:
// В немецком буква ä идёт рядом с буквой a
console.log(new Intl.Collator('de').compare('ä', 'z'));
// → отрицательное значение
// В шведском буква ä следует после буквы z
console.log(new Intl.Collator('sv').compare('ä', 'z'));
// → положительное значение
Пример: использование аргумента options
Результат, предоставляемый функцией Collator.prototype.compare(), может быть настроен с помощью аргумента options:
// В немецком буква 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' в этой спецификации. |
Стандарт | Изначальное определение. |
Совместимость с браузерами
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Базовая поддержка | 24 | 29 (29) | 11 | 15 | Не поддерживается |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | Не поддерживается | 26 |
Не поддерживается bug 864843 |
Не поддерживается | Не поддерживается | Не поддерживается |