文字列.indexOf() / lastIndexOf() / includes()
文字列内の指定した文字列を検索し、その位置を返します。存在の有無だけを確認したい場合は『文字列.includes()』が便利です。
構文
// 先頭から検索して最初に見つかった位置を返します。
文字列.indexOf("検索文字列")
文字列.indexOf("検索文字列", 開始位置)
// 末尾から検索して最後に見つかった位置を返します。
文字列.lastIndexOf("検索文字列")
文字列.lastIndexOf("検索文字列", 開始位置)
// 文字列が含まれているかを true / false で返します。
文字列.includes("検索文字列")
文字列.includes("検索文字列", 開始位置)
メソッド一覧
| メソッド | 概要 |
|---|---|
| indexOf("検索文字列") | 先頭から検索し、最初に見つかった位置(インデックス)を返します。見つからない場合は『-1』を返します。 |
| indexOf("検索文字列", 開始位置) | 指定した位置から検索を開始します。 |
| lastIndexOf("検索文字列") | 末尾から検索し、最後に見つかった位置を返します。見つからない場合は『-1』を返します。 |
| includes("検索文字列") | 文字列が含まれていれば『true』、含まれていなければ『false』を返します。 |
| includes("検索文字列", 開始位置) | 指定した位置から検索を開始します。 |
サンプルコード
var str = "JavaScript is great. JavaScript is fun.";
// indexOf で最初に見つかった位置を取得します。
console.log(str.indexOf("JavaScript")); // 『0』と出力されます。
console.log(str.indexOf("is")); // 『11』と出力されます。
console.log(str.indexOf("Python")); // 見つからないため『-1』と出力されます。
// 2番目の引数で検索開始位置を指定できます。
console.log(str.indexOf("JavaScript", 1)); // 『21』と出力されます。
// lastIndexOf で最後に見つかった位置を取得します。
console.log(str.lastIndexOf("JavaScript")); // 『21』と出力されます。
// includes で存在確認を行います。
console.log(str.includes("great")); // 『true』と出力されます。
console.log(str.includes("Python")); // 『false』と出力されます。
概要
『文字列.indexOf()』と『文字列.lastIndexOf()』は文字列内で指定した文字列を検索し、見つかった位置(インデックス)を数値で返すメソッドです。『文字列.indexOf()』は先頭から、『文字列.lastIndexOf()』は末尾から検索を行います。見つからなかった場合はどちらも『-1』を返します。
単に文字列が含まれているかどうかを調べたい場合は『文字列.includes()』を使うと、『true』か『false』で結果が得られるためコードが読みやすくなります。『文字列.indexOf()』を使って存在確認を行う場合は str.indexOf("abc") !== -1 のように『-1』と比較する必要がありますが、『文字列.includes()』なら str.includes("abc") と簡潔に書けます。
いずれのメソッドも大文字と小文字を区別して検索します。大文字・小文字を無視して検索したい場合は、あらかじめ『文字列.toLowerCase()』で統一してから検索するとよいでしょう。
対応ブラウザ
デスクトップ
全バージョンで対応しています
全バージョンで対応しています
全バージョンで対応しています
2 以前 ×
2 以前 ×モバイル
全バージョンで対応しています
Android Browser
37 以降 ○
4 以前 ×
Chrome Android
36 以降 ○
17 以前 ×
Firefox Android
79 以降 ○
3 以前 ×記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。