JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで特定の文字列が別の文字列内に出現する回数をカウントする方法


本記事では、2つの文字列を引数として受け取り、一方の文字列(str1)がもう一方の文字列(str2)の中に何回出現するかをカウントして返すJavaScript関数の作成方法について解説します。

実装例

この処理を実現するコードは以下の通りです。

const main = 'This is the is main is string';
const sub = 'is';
const countAppearances = (main, sub) => {
    const regex = new RegExp(sub, "g");
    let count = 0;
    main.replace(regex, (a, b) => {
        count++;
    });
    return count;
};
console.log(countAppearances(main, sub));

コードの解説

まず、new RegExp(sub, "g")により、検索対象の文字列にマッチするグローバル(gフラグ付き)の正規表現オブジェクトを生成します。続いて、String.prototype.replace()メソッドを利用します。このメソッドは、パターンにマッチする箇所ごとにコールバック関数を呼び出すため、コールバック内でカウンター変数をインクリメントすることで出現回数を数えられます。最後に、集計したカウント値を戻り値として返します。

出力結果

コンソールには以下のように表示されます。

4

この例では、文字列「is」が元の文字列「This is the is main is string」の中に4回出現しているため、結果は4となります。

  1. JavaScriptで文字列を特定の回数だけ繰り返す方法

    JavaScriptでは、文字列と数値を引数として受け取り、その文字列を指定された回数だけ繰り返した新しい文字列を返す関数を書くことが求められるケースがあります。本記事では、その実装方法をわかりやすく解説します。問題の概要ここで必要なのは、次のような仕様を持つJavaScript関数です。第1引数に文字列、第2引数に繰り返し回数(数値)を受け取る入力文字列を第2引数で指定された回数だけ繰り返す繰り返した結果の新しい文字列を返す実装例以下は、ループ処理を使って文字列を繰り返すコード例です。const str = this; const num = 8; const repeatSpecific

  2. JavaScriptで配列を電話番号形式の文字列に変換する方法

    問題ちょうど10個の正の整数を含む配列 arr を受け取るJavaScript関数を作成することを考えます。この関数は、配列の要素を一般的な電話番号の形式である「(XXX) XXX-XXXX」の文字列に組み立てて返す必要があります。例えば、関数への入力が以下の場合を考えてみましょう。入力const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0];出力const output = (987) 654-3210;コード例以下がその実装コードです。const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; const createNumber =