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

JavaScriptで文字列に含まれる数値を抽出して合計する方法

本記事では、数字が混在した文字列から1桁の数値をすべて抽出し、その合計を返すJavaScript関数の作成方法を解説します。

例として、次のような数字と文字が混ざった文字列を考えてみましょう。

const str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';

実装例

それでは、この処理を実現するコードを書いていきます。

const str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';
const sumStringNum = str => {
    const strArr = str.split("");
    let res = 0;
    for(let i = 0; i < strArr.length; i++){
        if(+strArr[i]){
            res += +strArr[i];
        };
    };
    return res;
};
console.log(sumStringNum(str));

コードの解説

この関数の仕組みは以下の通りです。

まず split("") を使って、文字列を1文字ずつの配列に分解します。次に、ループ処理で各要素を順番にチェックし、単項プラス演算子(+)によって数値へ変換します。英字などの文字を数値変換すると NaN になるため、if文の条件判定で自動的に除外され、数値に変換できた要素だけが合計値に加算されます。

なお、同じ処理は正規表現や match() メソッドを組み合わせることでも実装可能ですが、この方法は最もシンプルで理解しやすいアプローチの一つです。

出力

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

35
  1. JavaScriptでスペース区切りの文字列内の数値を合計する方法

    問題スペースで区切られた整数を含む文字列を受け取り、その中の各整数を数値に変換したうえで、合計値を返すJavaScript関数を作成する必要があります。解決のアプローチ基本的な処理の流れは次の3ステップです。split( ) メソッドで、文字列をスペースを基準に配列へ分割するmap(Number) で、配列の各要素を数値へ変換するreduce() を使って、配列内のすべての数値を合計するコード例以下が実際のコードです。const str = 1 5 12 76 2; { { acc + val);        r

  2. JavaScriptで文字列から数字だけを抽出する方法

    問題アルファベット・特殊文字・数字が混在した文字列 str を受け取り、その中に含まれる数字だけを元の順序のまま抽出して、新しい文字列として返すJavaScript関数を作成します。例えば、関数への入力が次の場合:const str = revd1fdfdfs2v34fd5gfgfd6gffg7ds;期待される出力は次のとおりです。const output = 1234567;解決コード以下がその実装例です。const str = revd1fdfdfs2v34fd5gfgfd6gffg7ds;const pickNumbers = (str = ) => {  le