JavaScriptでさまざまな文字列を比較する5つの方法を紹介します。等価演算子で文字列が等しいか比較したり、文字列のサイズ比較することができます。あるいは、文字列にどの文字列が含まれているかを確認するか、どの文字列で始まるか終了するかを確認することもできます。
1. 等価演算子(==、===)で文字列を比較する
2つの文字列が等しいかどうかを確認するときは、等価演算子(==、===)を使用できます。以下の例のように、2つの文字列が等しい場合はtrueを返し、異なる場合はfalseを返します。
const str1 = 'hello';
const str2 = 'hello';
const str3 = 'world';
console.log(str1 === str2); // true
console.log(str1 === str3); // false
console.log(str2 === str3); // false
console.log(str2 !== str3); // true
console.log(str1 == str2); // true
console.log(str1 == str3); // false
console.log(str2 == str3); // false
console.log(str2 != str3); // true
1.1 等価演算子、==と===の違い
上記の例では、==と===の結果が同じで、違いがわかりませんでした。
==
はEqualityを比較し、===
はIdentityを比較します。以下の違いがあります。
- ==は比較するオブジェクトのタイプが異なっても、型変換して値が等しい場合はtrue
- ===はオブジェクトタイプが同じで値が等しい場合はtrue
以下の例を見ると、違いを確認できます。 stringとNumber型のオブジェクトを比較しますが、 ==
はtrue、 ===
はfalseを返します。
==
の場合、Number型をstring型に変換して比較すると、2つのオブジェクトの値が同じであるためtrueが返されます。
しかし、 ===
の場合、2つのオブジェクトの型が異なるため、falseが返されました。
const str = '123';
const num = 123;
console.log(str === num); // false
console.log(str == num); // true
厳密に比較するには、 ===
を使って比較することをお勧めします。
developer.mozilla.orgにさまざまな例があるので、この記事も確認してみてください。
2. 文字列サイズの比較(>、<演算子)
文字列のサイズ比較は、他の言語と同じようにASCII値を比較してサイズを決定します。アルファベット順が前にあるほどサイズが小さく、文字列の前から後ろの順に比較をします。文字列が長くても同じ位置(Index)の文字のアルファベット順が小さい場合は、文字列のサイズが小さいと計算されます。そして、文字列の長さが短く、同じインデックスに文字がない場合は、より小さい文字列として計算されます。
const str1 = 'abcd';
const str2 = 'ab';
const str3 = 'abd';
const str4 = 'aba';
const str5 = 'bbcd';
console.log(str1 > str2); // true
console.log(str1 < str3); // true
console.log(str1 > str4); // true
console.log(str1 < str5); // true
3.文字列にどの文字列が含まれているかを確認する:String.indexOf()
String.indexOf() を使用して、文字列にどの文字列が含まれているかを確認できます。 以下のように、引数に渡された文字列が文字列内に存在する場合は、その文字列が位置するIndexを返します。存在しない場合は、-1を返します。したがって、-1 が返されるかどうかで文字列が含まれていることを確認できます。
const str = 'Hello, World, Javascript';
if (str.indexOf('Hello') != -1) {
console.log("str contains 'Hello'");
} else {
console.log("str doesn't contain 'Hello'");
}
Output:
str contains 'Hello'
4. 文字列にどの文字列が含まれているかを確認する : String.includes()
String.includes() を使用して、文字列にどの文字列が含まれているかを確認できます。 以下のように、引数に渡された文字列が文字列内に存在する場合はtrueが返され、存在しない場合はfalseを返します。
const str = 'Hello, World, Javascript';
if (str.includes('Hello')) {
console.log("str contains 'Hello'");
} else {
console.log("str doesn't contain 'Hello'");
}
Output:
str contains 'Hello'
5. 文字列がどの文字列で始まるか終了するかを確認する : String.startsWith(), String.endsWith()
startsWith()
は、文字列が引数として渡された文字列で始まるときにtrueを返します。そしてendsWith()
も同様に、文字列が引数として渡された文字列で終わるときにtrueを返します。
const str = 'Hello, World, Javascript';
console.log(str.startsWith('Hello')); // true
console.log(str.startsWith('World')); // false
console.log(str.endsWith('Javascript')); // true
console.log(str.startsWith('World')); // false
Related Posts
- JavaScript - 現在のタイムスタンプを取得する
- Node.js - ファイル、ディレクトリの削除
- JavaScript - 文字列 空白 削除
- JavaScript sort() 関数、例の紹介
- JavaScript Set delete() 関数、値の削除
- JavaScript - 実行時間の測定方法
- JavaScript - 配列をオブジェクトに変換する4つの方法
- JavaScript - Mapの作成と初期化、3つの方法
- JavaScript - Map巡回、3つの方法
- JavaScript - Mapソート(キーまたはvalueでソート)
- JavaScript - オブジェクトに特定の値が存在することを確認する
- JavaScript - 数値がNaNであるかどうかを確認する方法
- JavaScript Enum (列挙型)
- JavaScript - 日付/時刻比較、3つの 方法
- JavaScript - 空の文字列の確認、2つの方法
- JavaScript - 最後の文字を削除する、4つの方法
- JavaScript - 配列を文字列に変換、3つの方法
- JavaScript - 複数行の文字列、3つの方法
- JavaScript - オブジェクトを文字列に変換する2つの方法
- JavaScript - 配列から重複排除、4つの方法
- JavaScript - 文字列の比較方法、5つの方法
- JavaScript - 文字列から数字のみを抽出する
- JavaScript - 配列のソート方法(昇順、降順)
- JavaScript - 文字列 切り出し(split、substr、substring、slice)
- JavaScript - Setを配列(Array)に変換する
- JavaScript - 文字列を配列(Array)に変換
- JavaScript - 関数の宣言方法
- JavaScript - 配列宣言、追加、削除などの基本的 な使用法のクリーンアップ
- JavaScript - 文字列を数値に変換する方法
- JavaScript - 文字列を結合する、接続する(concat、join、+)