ここでは、JavaScriptで文字列を比較する方法と注意点について説明します。数値と同様、文字列の比較にも比較演算子を使います。
比較同値演算子 ==, === を用いた文字列の比較
JavaScript で使われる同値演算子には == と === (それぞれに対応する否定演算子 != と !==)があります。両者の違いは比較する際に型変換を行うか否かで、=== は型変換を行わずに比較します。文字列同士の比較であれば、== も === も同じ結果となります。
1 2 3 4 |
var str1 = 'abc'; var str2 = 'abc'; str1 == str2; // true str1 === str2; // true |
単純な文字列同士を比較する場合であれば、型変換が行われない === を使用した方が良いでしょう。
比較演算子 <, >, <=. >= を用いた文字列の比較
JavaScript で文字列を比較する場合、比較は Unicode 値を用い、標準の辞書に基づいて比較が行われます。
以下にいくつかの例を示します。
1 2 3 4 5 6 7 8 |
'abc' < 'def'; // true 'abc' <= 'def'; // true 'abc' > 'def'; // false 'abc' >= 'def'; // false 'abc' < 'DEF'; // false '#$%' < 'abc'; // true 'あいうえお' < 'かきくけこ'; // true 'あいうえお' < 'アイウエオ'; // true |
Unicode 値を用いた大小比較た場合の規則について以下にまとめます。
・英語のアルファベット文字の比較は ABC 順
・英語のアルファベットは大文字は小文字より小さい
・数字や記号はアルファベット文字より小さい
・ひらがなとカタカナの比較はあいうえお順
・ひらがなはカタカナより小さい
漢字の比較を行う際の注意点
漢字の並び順は、部分的には音読みの辞書順であり、コンピュータの都合による比較です。このため、漢字については人間にとって意味のある比較を行うことはできません。