JavaScript

【JavaScript】indexOfで特定の文字列が入っているか確認・判定する方法

本記事では、JavaScriptのindexOfメソッドで特定の文字列が入っているか確認・判定する方法について解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

特定の文字列が入っているか確認する方法

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メソッドについても紹介している記事があるので、興味のある方はご覧ください!

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村