catch-img

indexOfを使って文字列を検索、確認しよう。使い方と書き方まとめ

JavaScriptのメソッドの一つである「indexOf」の基本的な使い方について解説します。正規表現を用いた検索方法をはじめ、indexOf以外の検索についても紹介しますので、参考にしましょう。

社内のエンジニア不⾜を解決するたった1つの解決⽅法はこちら

目次[非表示]

  1. 1.indexOfを使って文字列を検索しよう
    1. 1.1.indexOfメソッドについて知ろう
  2. 2.indexOfの使い方 基本編
    1. 2.1.文字列の検索方法
    2. 2.2.文字の後ろから検索する方法
    3. 2.3.配列を検索する方法
    4. 2.4.文字列の出現回数を確認する
  3. 3.その他の検索方法についても知ろう
    1. 3.1.searchを使った検索
    2. 3.2.matchを使った検索
    3. 3.3.その他のメソッド
    4. 3.4.「==」と「===」についても知ろう
  4. 4.文字列検索を使って便利なサイトを作ろう

indexOfを使って文字列を検索しよう

JavaScriptにはさまざまなメソッドがあります。その中で、今回はindexOfの使い方について解説します。まずは、indexOfの持つ基本的な役割について知っておきましょう。

簡単なWebサイトの改修の内製化を目指すフロントエンド(HTML・CSS・JavaScript)入門5日はこちら

indexOfメソッドについて知ろう

indexOfメソッドは、Stringクラス(文字列を扱うクラス)のメソッドの一つで、指定した文字列が最初に登場する位置を、文字列の先頭を0として扱ったインデックス番号で戻り値として返します。

指定した文字列が出現しない場合は、戻り値を-1で返します。

indexOfの使い方 基本編

indexOfメソッドの具体的な使い方を見ていきましょう。まずは基本的な使い方から解説していきます。

全国の若手~ベテランエンジニアが受講している個別指導のオンライン・リモート講座(入門5日・基礎10日)はこちら

文字列の検索方法

検索方法は、indexOfの値に検索したい文字列を指定するだけです。次のコードと共に見ていきましょう。

let str = 'りんご,みかん,バナナ, いちご, バナナ';
let result = str.indexOf( 'バナナ' );
console.log( result );

このコードでは、8という結果を返します。これは(,を含んだ)左から数えて、バナナの文字が8文字目から始まるためです。

let str = 'りんご,みかん,バナナ, いちご, バナナ';
let result = str.indexOf( 'バナナ' ,9);
console.log( result );

この場合は2番目のバナナが始まる文字数の18という値を返します。

文字の後ろから検索する方法

後ろから検索する場合、lastindexOfというメソッドを使います。文字列の後ろから数えて一致するまでの文字を検索しています。;

let str = 'りんご,みかん,バナナ, いちご, バナナ';
let result = str.lastIndexOf( 'バナナ');
console.log( result );

この結果は18となります。検索自体は後ろからですが、カウント自体は前から行います。

配列を検索する方法

配列に格納されている値についても、indexOfを使って検索することができます。

let array = ['りんご', 'みかん', 'バナナ', 'レモン'];
let result = array.indexOf( 'バナナ' );
console.log( result );

配列の検索方法についても書き方自体は変わりません。配列の場合は、文字数ではなく要素数で検索されるため、この場合の結果はインデックス番号が2と表示されます。

文字列の出現回数を確認する

少し応用して、文字列の中に何回同じ文字が出現したかを調べる方法について記載します。

let str = '123451234512345'; let count = 0;
let idx = 0;
idx = str.indexOf('1');
while(idx != -1){
 count++; idx = str.indexOf('1', idx + 1);
}
console.log(count);

1~5までの反復の中に、1が何回出現したかをカウントするコードです。1が現れるたびにカウントを繰り返し、最終的に1が出現しなくなる(戻り値がマイナス1になる)までカウントを続けています。

上記の式の結果は、3と表示されます。文字列の中の1の出現回数と同じです。このような使い方もできるので覚えておきましょう。

■関連記事

  JavaScriptでのfunction(関数)や戻り値の使い方 | Java・フロントエンド研修のジョブサポート 戻り値の取得は、色々なプログラムで利用されます。JavaScriptにおける戻り値の使い方について学んでいきましょう。function(関数)の戻り値についての基本的な書き方をはじめ、戻り値に関する基本を解説します。 Java・フロントエンド研修のジョブサポート

その他の検索方法についても知ろう

indexOfを使用する以外にも、文字列を検索する方法はあります。よく使われる方法についてピックアップして紹介します。

若手、新人エンジニアの成長を阻む 人材育成5つの失敗と解決策はこちら

searchを使った検索

searchメソッドは、正規表現による検索を行います。indexOfと同様、一致した位置を返すメソッドです。

正規表現は、「全角数字」「半角英数字」「ひらがな」「カタカナ」などの、文字列のパターンを指定することになります。

let str = '1,12,123,1234';
let result = str.search( /[1-9]{4}/ );
console.log( result );

上記のコードでは、「1~9までの数字が並んだ4桁」を検索しています。それに該当するのは「1234」だけなので、1234を検索して左から数えて文字数である9の値を返します。

matchを使った検索

matchメソッドの使い方はsearchメソッドと大きな違いはありません。違うのは、matchメソッドは値をそのまま返すという点です。

let tell = "123-456, 二二二二, 111-1111,×××-××××";
console.log( tell.match( /\d{3}-\d{4}/g ) );

末尾に「g」をつけると、複数の文字列を検出できるようになります。

このコードでは、「(半角英数字3桁)-(半角英数字4桁)」という文字列を検索していて、該当する「111-1111」が抽出されます。

なお、matchを使って文字が見つからなかった場合は「null」を返します。

その他のメソッド

searchやmatchの他にも使えるメソッドがあります。代表的なものを紹介しますので、使ってみてください。

  • test:一致した文字列があるかどうかを真偽値で判定する
  • carAt:指定したインデックスの1文字を抽出する
  • substr:指定したインデックスから指定した文字数の文字列を抽出する
  • substring:指定したインデックス間の文字列を抽出する

「==」と「===」についても知ろう

「==」と「===」は検索だけではなく、さまざまな場面で使うことになるので、違いを覚えておきましょう。次のコードを元に解説します。

let x = "1"; let y = 1;

console.log(x==y);
console.log(x===y);

2つのconsole.logがありますが、1行目はtrue、2行目のログはfalseの値を返します。この結果の違いは、「==」と「===」の意味に違いがあります。

==は「等価演算子」といって、文字列が一致しているかどうかを調べます。1が数字であっても文字として認識していても、文字列としては同じなので結果はtrueとして返します。

一方、===は「厳密等価演算子」といいます。文字列に加えて、型もチェックしているのです。

"1"は文字(string型)、1は数字(number型)という型の違いがあるため、文字列が一致していてもfalseを返します。

「==」と「===」の違いはエラー原因になることもよくありますので、覚えておきましょう。

■関連サイト

  トップページ- Java・フロントエンド研修のジョブサポート 法人向けエンジニア研修実績2500名以上。ジョブサポートは技術力、仕事の成果を出すためのビジネススキルも同時に身に付けます。研修は通学、オンライン・リモートの選択が可能です。Java・フロントエンドのエンジニア技術研修・新人研修はジョブサポートにお任せください。 Java・フロントエンド研修のジョブサポート

文字列検索を使って便利なサイトを作ろう

JavaScriptでは、データベースやWebサイトのメッセージなどを扱うこともあり、膨大な文字列の中で特定の文字を検索する、といった操作を行うことがあります。

短期5日・10日講座(Java・フロントエンド)研修実績はこちら

そういった場合に備えて、indexOfや正規表現などの検索手段を身につけておくと良いでしょう。インデックス番号、型の違いについてなどさまざまな検索ができるようになると、JavaScriptで扱える文字列の幅が大きく広がります。​​​​​​​

新卒・中途未経験者を採用した
企業におすすめのエンジニア研修サービス

法人研修の実績2700名以上!中小企業~大手上場企業まで幅広く受講してます。
若手、新人エンジニア採用後の Java研修はジョブサポートお任せ下さい
おすすめお役立ち資料02
短期講座(入門5日、基礎10日) Java・フロントエンド (HTML5・CSS・JavaScript) 全国の中小~大手企業まで幅広くお問い合わせ、 受講を頂く人気講座です

運営会社

株式会社ジョブサポート

Java・フロントエンド(HTML5・CSS・JavaScript)の企業研修実績2700名以上を実施。受講満足度は95%。

おすすめお役立ち資料

おすすめお役立ち資料02
おすすめお役立ち資料02

関連記事

研修サービス一覧

プロエンジニア育成コース
新人エンジニア研修
短期通学講座
研修実績
よくあるご質問

ランキング

タグ一覧