Intl.Collator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Intl.Collator
オブジェクトは、言語を考慮した文字列の比較を可能にします。
試してみましょう
コンストラクター
Intl.Collator()
-
新しい
Collator
オブジェクトを生成します。
静的メソッド
Intl.Collator.supportedLocalesOf()
-
指定したロケールのうち、ランタイムの既定のロケールに代替されることなく対応されているものを含む配列を返します。
インスタンスメソッド
Intl.Collator.prototype.compare
-
この
Intl.Collator
オブジェクトのソート順に応じて 2 つの文字列を比較する関数を返します。 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 の使用
Intl/Collator/compare
の結果は言語によって異なります。アプリケーションのユーザーインターフェイスで使用される言語のソート順を取得するには、 locales
引数にその言語を(およびフォールバック用の言語も)指定してください。
// in German, ä sorts with a
console.log(new Intl.Collator("de").compare("ä", "z"));
// → 負の値
// in Swedish, ä sorts after z
console.log(new Intl.Collator("sv").compare("ä", "z"));
// → 正の値
options の使用
Intl/Collator/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"));
// → 正の値
仕様書
Specification |
---|
ECMAScript Internationalization API Specification # collator-objects |
ブラウザーの互換性
BCD tables only load in the browser