この翻訳は不完全です。英語から この記事を翻訳 してください。

概要

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 インスタンスはプロトタイプから次のプロパティを継承します。:

Intl.Collator.prototype.compare
Getter; returns a function that compares two strings according to the sort order of this Intl.Collator object.
Intl.Collator.prototype.constructor
A reference to Intl.Collator.

Methods

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

Intl.Collator.prototype.resolvedOptions()
Returns a new object with properties reflecting the locale and collation options computed during initialization of the object.

例: 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 の定義
標準 初期定義。

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 24 29 (29) 11 15 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
基本サポート 未サポート 26 未サポート
バグ 864843
未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

このページの貢献者: sgryjp, shide55, Mingun
最終更新者: sgryjp,