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

JavaScriptのindexOfメソッドで、先頭から検索して文字列の位置を取得するサンプルです。

目次

説明 先頭から検索して文字列の位置を取得する
サンプル 1文字検索する
  検索対象が文字列の場合
  検索する文字が存在しない場合
  文字列が日本語(全角)の場合
  検索する開始位置を指定する(引数が2つ)

先頭から検索して文字列の位置を取得する

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

1文字検索する

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

文字列の先頭から検索し引数の文字列が最初に見つかった位置を返します。
文字列の先頭の位置は、0です。

検索対象が文字列の場合

<script>
    const str1 = "abcabc";
    console.log(str1.indexOf("abc")); // 0
    console.log(str1.indexOf("bc")); // 1
    console.log(str1.indexOf("ca")); // 2
</script>

引数の文字列が最初に見つかった位置を返します。

検索する文字が存在しない場合

<script>
    const str1 = "abcabc";
    console.log(str1.indexOf("z")); // -1
</script>

検索する文字が存在しない場合は、-1を返します。

文字列が日本語(全角)の場合

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

日本語(全角)の場合でも1文字は1でカウントします。

開始位置を指定する(引数が2つ)

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>

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

関連の記事

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

△上に戻る