JavaScript 文字列の位置を取得(indexOf/lastIndexOf)

JavaScriptの文字列の位置を取得するサンプルです。

目次

indexOf+引数1つ 前から検索する
indexOf+引数2つ 前から検索する+開始位置を指定
lastIndexOf+引数1つ 後から検索する
lastIndexOf+引数2つ 後から検索する+開始位置を指定

前から検索する

文字列.indexOf(検索する文字列)
  • 文字列を先頭から検索して出現した位置(数値)を返します。
  • 1つ目の引数は、検索する文字列です。
  • 該当の文字がないときは-1を返します。
  • 先頭の1文字目の位置は0です。

indexOfメソッドで前から検索するサンプルです。

<script>
    const str1 = "abcabc";
    console.log(str1.indexOf("a")); // 0
    console.log(str1.indexOf("b")); // 1
    console.log(str1.indexOf("c")); // 2
    console.log(str1.indexOf("abc")); // 0
	console.log(str1.indexOf("z")); // -1

    const str2 = "あいうあいう";
    console.log(str2.indexOf("あ")); // 0
    console.log(str2.indexOf("い")); // 1
    console.log(str2.indexOf("う")); // 2
</script>

3~6行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。
7行目は、該当の文字がないので-1が返ります。
9行目は、変数に日本語の文字列を代入しています。
10~12行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。

前から検索する+開始位置を指定

文字列.indexOf(検索する文字列, 検索を始める位置)
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は、検索を開始する位置です。

indexOfメソッドで、検索開始位置を指定するサンプルです。

<script>
    const str1 = "あいうあいう";
    console.log(str1.indexOf("あ", 0)); // 0
    console.log(str1.indexOf("あ", 1)); // 3
    console.log(str1.indexOf("あ", 2)); // 3
    console.log(str1.indexOf("あ", 3)); // 3
    console.log(str1.indexOf("あ", 4)); // -1
    console.log(str1.indexOf("あ", 5)); // -1
</script>

3行目の2つめの引数は0で対象の文字列は(あいうあいう)です。位置の0が返ります。
4行目の2つめの引数は1で対象の文字列は(いうあいう)です。位置の3が返ります。
5行目の2つめの引数は2で対象の文字列は(うあいう)です。位置の3が返ります。
6行目の2つめの引数は3で対象の文字列は(あいう)です。位置の3が返ります。
7行目の2つめの引数は4で対象の文字列は(いう)です。文字(あ)はないので-1です。
8行目の2つめの引数は5で対象の文字列は(う)です。文字(あ)はないので-1です。

以下はMDNのindexOfメソッドのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

後から検索する

文字列.lastIndexOf(検索する文字列)
  • 文字列を末尾から検索して出現した位置(数値)を返します。
  • 1つ目の引数は、検索する文字列です。
  • 該当の文字がないときは-1を返します。
  • 先頭の1文字目の位置は0です。

lastIndexOfメソッドで後から検索するサンプルです。

<script>
    const str1 = "abcabc";
    console.log(str1.lastIndexOf("a")); // 3
    console.log(str1.lastIndexOf("b")); // 4
    console.log(str1.lastIndexOf("c")); // 5
    console.log(str1.lastIndexOf("abc")); // 3
	console.log(str1.lastIndexOf("z")); // -1

    const str2 = "あいうあいう";
    console.log(str2.lastIndexOf("あ")); // 3
    console.log(str2.lastIndexOf("い")); // 4
    console.log(str2.lastIndexOf("う")); // 5
</script>

3~6行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。
7行目は、該当の文字がないので-1が返ります。
9行目は、変数に日本語の文字列を代入しています。
10~12行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。

後から検索する+開始位置を指定

文字列.lastIndexOf(検索する文字列, 検索を始める位置)
  • 文字列を末尾から検索して出現した位置(数値)を返します。
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は、検索を開始する位置です。

lastIndexOfメソッドで、検索開始位置を指定するサンプルです。

<script>
    const str1 = "あいうあいう";
    console.log(str1.lastIndexOf("あ", 5)); // 3
    console.log(str1.lastIndexOf("あ", 4)); // 3
    console.log(str1.lastIndexOf("あ", 3)); // 3
    console.log(str1.lastIndexOf("あ", 2)); // 0
    console.log(str1.lastIndexOf("あ", 1)); // 0
    console.log(str1.lastIndexOf("あ", 0)); // 0
</script>

3行目の2つめの引数は5で対象の文字列は(あいうあいう)です。位置の3が返ります。
4行目の2つめの引数は4で対象の文字列は(あいうあい)です。位置の3が返ります。
5行目の2つめの引数は3で対象の文字列は(あいうあ)です。位置の3が返ります。
6行目の2つめの引数は2で対象の文字列は(あいう)です。位置の0が返ります。
7行目の2つめの引数は1で対象の文字列は(あい)です。位置の0が返ります。
8行目の2つめの引数は0で対象の文字列は(あ)です。位置の0が返ります。

以下はMDNのlastIndexOfメソッドのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf

関連の記事

JavaScript 文字列の一部を取得する(substring)
JavaScript 文字列の一部を取得+頭ゼロ付与(slice)
JavaScript 文字列から1文字を取得する(charAt)

△上に戻る