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

JavaScriptのindexOfメソッドとlastIndexOfメソッドで、文字列の位置を取得するサンプルです。

目次

indexOf 前から検索する(indexOf)
  開始位置を指定する(indexOf)
lastIndexOf 後から検索する(lastIndexOf)
  開始位置を指定する(lastIndexOf)

前から検索する(indexOf)

str.indexOf(検索する文字列[, 検索を始める位置])

コード

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)

indexOfメソッドで検索開始位置を指定するサンプルです。
2つ目の引数は、検索を始める位置です。

<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>

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

後から検索する(lastIndexOf)

str.lastIndexOf(検索する文字列[, 検索を始める位置])
  • 文字列を後ろから検索して出現した位置(数値)を返します。
  • 1つ目の引数は、検索する文字列です。
  • 2つ目の引数は、検索を始める位置です。省略可能です。
  • 該当の文字がないときは-1を返します。
  • 先頭の1文字目の位置は0です。
  • Stringオブジェクトのメソッドです。
  • 以下はMDNのlastIndexOfメソッドのリンクです。
    https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf

コード

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)

lastIndexOfメソッドで検索開始位置を指定するサンプルです。
2つ目の引数は、検索を始める位置です。

<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>

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

関連の記事

JavaScript 文字列を分割して配列にするサンプル(split)
JavaScript 文字列の一部を取得する(substring)
JavaScript 文字列の一部を取得する(slice)
JavaScript 文字列の一部を取得する(substr)
JavaScript 文字列から1文字を取得する(charAt)
JavaScript 文字列の長さを取得する(length)
JavaScript 英字の大文字と小文字を変換(toLowerCase/toUpperCase)
JavaScript 文字列を置き換える(replace)
JavaScript 正規表現で値を返す(matchメソッド)

△上に戻る