Intl.Collator

この記事は翻訳が完了していません。 この記事の翻訳にご協力ください

Intl.Collatorオブジェクトは、言語を考慮して文字列を比較できるcollatorオブジェクトを生成します。

構文

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

引数

locales

任意。BCP47言語タグの文字列またはその配列。locales引数の一般的な形式や解釈についてはIntlのページを参照してください。次のUnicode拡張キーが使用可能です:

co
特定のロケールにおけるバリアントの比較方法を指定します。指定可能な値には "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan"があります。なお"standard""search"については、options引数のusageプロパティによって代替されるため無視されます(下記参照)。
kn
数値としての比較を行うかどうかを"true"または"false"で指定します。数値として比較すると、"1" < "2" < "10" となります。数値としての比較をするかどうかは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 ≠ ba = áa = A
  • "accent": ベース文字が異なるか、またはアクセントその他の発音区別符号が異なれば、異なる文字であると評価します。
    例: a ≠ ba ≠ áa = A
  • "case": ベース文字が異なるか、ベース文字が同一でも大文字小文字が異なれば、異なる文字であると評価します。
    例: a ≠ ba = áa ≠ A
  • "variant": ベース文字、アクセントその他の発音区別符号、および大文字小文字のいずれかが異なれば、異なる文字であると評価します。他の違いも考慮されるかもしれません。
    例: a ≠ ba ≠ áa ≠ A

デフォルトは、usageプロパティが"sort"の場合は "variant"、 "search"の場合はローケル依存です。

ignore­Punctua­tion
句読点を無視するかどうか。指定可能な値は true または falseで、デフォルトはfalseです。
numeric
数値としての比較を行うかどうか。数値として比較すると "1" < "2" < "10" となります。指定可能な値は"true"または"false"で、デフォルトはfalseです。このオプションはoptionsプロパティでもUnicode拡張キーでも指定可能です。両方で指定された場合、options プロパティの指定が優先されます。実装は、このプロパティをサポートする必要はありません。
caseFirst
大文字と小文字のどちらを先に並べるか。指定可能な値は"upper""lower""false" (ローケルのデフォルト動作) です。大文字と小文字のどちらを先に並べるかはoptionsプロパティでもUnicode拡張キーでも指定可能です。両方で指定された場合、options プロパティの指定が優先されます。実装は、このプロパティをサポートする必要はありません。

説明

プロパティ

Intl.Collator.prototype
すべてのオブジェクトにプロパティを追加できます。

メソッド

Intl.Collator.supportedLocalesOf()
実行時のデフォルトロケールにフォールバックしなくても、サポートされて提供されるロケールのものを含む配列を返します。

Collator インスタンス

プロパティ

Collator インスタンスはプロトタイプから次のプロパティを継承します。:

Methods

Collator インスタンスはプロトタイプから次のメソッドを継承します。:

例: Collatorを使う

次の例では、一方の文字列が他方の文字列の前である場合、後である場合、および同じレベルである場合の比較結果を表示します:

console.log(new Intl.Collator().compare('a', 'c')); // → a negative value
console.log(new Intl.Collator().compare('c', 'a')); // → a positive value
console.log(new Intl.Collator().compare('a', 'a')); // → 0

上記コードの結果は、ブラウザやブラウザのバージョンによって異なりうる点に注意してください。というのも前および後を表す数値については、それぞれ負の数および正の数であることだけが仕様によって定めています。具体的な数値は定められていないため、実装ごとに異なる数値になるかもしれません。

例: localesを使う

Collator.prototype.compare()の結果は言語によって異なります。アプリケーションのユーザインターフェイスで使用される言語のソート順を取得するには、locales引数にその言語 (およびフォールバック用の言語も) を指定してください。:

// in German, ä sorts with a
console.log(new Intl.Collator('de').compare('ä', 'z'));
// → a negative value

// in Swedish, ä sorts after z
console.log(new Intl.Collator('sv').compare('ä', 'z'));
// → a positive value

例: optionsを使う

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'));
// → a positive value

仕様

仕様 状況 コメント
ECMAScript Internationalization API 1.0 (ECMA-402)
Intl.Collator の定義
標準 初期定義。

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
CollatorChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 0.12
補足
完全対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
Collator() constructorChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 13.0.0
完全対応 13.0.0
部分対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the Collator instance silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
compareChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 0.12
補足
完全対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
resolvedOptionsChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 0.12
補足
完全対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
supportedLocalesOfChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 13.0.0
完全対応 13.0.0
部分対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

凡例

完全対応  
完全対応
実装ノートを参照してください。
実装ノートを参照してください。

関連情報