一般社団法人 全国個人事業主支援協会

COLUMN コラム

JavaScriptで文字列操作第四弾です。
今回は文字列の置換、検索についてまとめます。

1.replaceメソッド
「対象の文字列.replace( 置換前の文字列, 置換後の文字列 );」で文字列を置換します。
    let str = "国語、算数、理科、社会、国語";
    let result1 = str.replace("国語","英語");
    console.log(result1);
    // -> 英語、算数、理科、社会、国語
    let result2 = str.replace("国語、","");
    console.log(result2);
    // -> 算数、理科、社会、国語

上記の書き方でははじめの「国語」しか「英語」に置換されませんが、正規表現を使うとすべての指定文字を置換できます。
    let result3 = str.replace(/国語/g, "英語");
    console.log(result3);
    // -> 英語、算数、理科、社会、英語
また、複数の文字を変換する場合はメソッドチェーンを使います。
    let result4 = str.replace(/国語/g, "英語").replace(/社会、/g, "");
    console.log(result4);
    // ->英語、算数、理科、英語

2.indexOfメソッド
2-1.「対象の文字列.indexOf( 検索したい文字列 );」で対象の文字列を先頭から検索し、検索したい文字列が最初に現れたインデックスを返します。
    let str = "a whole new world!";
    let result1 = str.indexOf("w");
    console.log(result1);
    // -> 2
    let result2 = str.indexOf("W");
    console.log(result2);
    // -> -1

2-2.「対象の文字列.lastIndexOf( 検索したい文字列 );」で対象の文字列を先頭から検索し、検索したい文字列が最後に現れたインデックスを返します。
    let str = "a whole new world!";
    let result1 = str.lastIndexOf("w");
    console.log(result1);
    // -> 12
    let result2 = str.lastIndexOf("W");
    console.log(result2);
    // -> -1

indexOfメソッドもlastindexOfメソッドも以下の戻り値を返します。
検索したい文字列を含む  :インデックスを返す(0文字目から数えて何文字目に検索対象の文字があるか)
検索したい文字列を含まない:「-1」を返す
また、大文字と小文字を区別します。

検索したい文字列を含まない場合に「-1」が返ることを利用して以下のような条件分岐ができます。
if (str.indexOf("world") != -1) {
    //strに「world」を含む場合の処理
}

 

参考:
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア