本記事では、JavaScriptのindexOfメソッドで特定の文字列が入っているか確認・判定する方法について解説しています。
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
特定の文字列が入っているか確認する方法
1文字目から検索する
まず始めに、対象文字列の1文字目から検索する方法について解説します。
let str = "家のつるべは潰れぬつるべ、隣のつるべは潰れるつるべ";
console.log(str.indexOf("つるべ")); // => 2
console.log(str.indexOf("つるべえ")); // => -1
indexOfの第一引数に、検索したい文字列を指定します。第二引数は何も指定しないことで1文字目から検索することが出来ます。
戻り値は、indexOfの第一引数に指定した文字列が見つかった位置を返します。もし、見つからなかったら-1を返します。
indexOfメソッドは、1文字目を0番目と認識します。そのため戻り値が1つずれるということを頭の片隅に覚えておきましょう!
n文字目から検索する
次に、対象文字列のn文字目から検索する方法について解説します。
let str = "家のつるべは潰れぬつるべ、隣のつるべは潰れるつるべ";
console.log(str.indexOf("つるべ", 5)); // => 9 ※3文字目から始まるつるべは無視される
console.log(str.indexOf("つるべえ", 5)); // => -1
1文字目から検索する時と同様に、indexOfの第一引数に検索したい文字列を指定します。第二引数には、検索を開始したい位置(n番目)を数値で指定します。
検索開始位置は、戻り値のワンポイントで解説した通り1文字目を0番目と認識するため、3文字目から検索したい場合は第二引数に2を指定します。
戻り値は、indexOfの第二引数に指定した開始位置から検索し文字列が見つかった位置を返します。もし、見つからなかったら-1を返します。
特定の文字列が入っているか判定する方法
特定の文字列が入っているか確認する方法が分かったら、次に判定する方法について見ていきましょう。
let str = "家のつるべは潰れぬつるべ、隣のつるべは潰れるつるべ";
if (str.indexOf("つるべ") !== -1) {
console.log("特定の値が見つかったよ!");
} else {
console.log("特定の値が見つかりませんでした。");
}
判定する時の判断材料は、戻り値の-1です。戻り値の-1は、特定の文字列が入っていない時にだけ返される値なのでこれを否定演算子(厳密不等価)を使い、逆の意味を持たせます。すると、特定の文字列を持っている時にだけtrueの扱いになります。
indexOfメソッドと似ているlastIndexOfメソッドについても紹介している記事があるので、興味のある方はご覧ください!