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

JavaScriptでsplit()とreplace()を組み合わせ、カンマの後の数字が1桁の場合に0を追加する方法

本記事では、JavaScriptを使って文字列内の小数部分が1桁しかない場合に、末尾へ0を追加する方法を解説します。具体的にはsplit()replace()という2つの文字列メソッドを組み合わせて実装していきます。

要件の整理

まず、今回扱うサンプル文字列は以下のとおりです。

const a = "250,5";

この文字列に対して、次のようなルールで処理を行います。

  • カンマ(,)の後に続く数字が1桁の場合は、末尾に0を追加して2桁に揃える。
  • 文字列にカンマが2つ以上含まれている場合は、-1を返して不正な入力であることを示す。

実装例

これらの処理は、split()でカンマ区切りの要素数や小数部分を取得し、replace()で該当箇所を置き換えることでシンプルに実現できます。以下が実際のコード例です。

const a = "250,5";
const roundString = (str) => {
    // カンマが2つ以上ある場合は -1 を返す
    if(str.split(",").length > 2){
        return -1;
    }
    // 小数部分が1桁なら末尾に 0 を追加
    return str.replace(`,${str.split(",")[1]}`, `,${str.split(",")[1]}0`);
}
console.log(roundString(a));

ポイントとして、元のコードでは関数内で引数ではなく外部変数aを直接参照していましたが、上記のように引数strを参照する形に修正することで、どの文字列を渡しても正しく動作する汎用的な関数になります。

コードの解説

  1. str.split(",")で文字列をカンマで分割し、配列の長さをチェックします。長さが3以上(=カンマが2つ以上)であれば-1を返します。
  2. 問題がなければ、replace()を使って「,5」のような1桁の小数部分を「,50」に置き換えます。

出力結果

このコードを実行すると、コンソールには以下のように表示されます。

250,50

このように、split()による検証とreplace()による置換を組み合わせることで、小数部の桁数を揃える処理をわずか数行で実装できます。金額表示など、小数点以下を必ず2桁にしたい場面でぜひ活用してみてください。

  1. JavaScriptのNumber.MAX_VALUEとNumber.MIN_VALUEプロパティの使い方をわかりやすく解説

    JavaScript の Number.MAX_VALUE と Number.MIN_VALUE は、JavaScriptで扱える数値の上限と下限を示す静的プロパティです。この記事では、それぞれのプロパティが持つ値の意味と、実際に動作するサンプルコードを交えて詳しく解説します。 Number.MAX_VALUE・Number.MIN_VALUEとは? Number.MAX_VALUE は、JavaScriptで表現できる最大の数値(約1.7976931348623157 × 10308)を返します。一方、Number.MIN_VALUE は「最小の負の数」ではなく、ゼロに最も近い正の数(約5

  2. JavaScriptでspanタグから価格値を取得し、数値を掛けた結果を表示する方法

    スパンタグ(<span>)から価格の値を取得するには、まずタグ内のテキストを抽出し、文字列から整数へ変換します。その後、任意の数値を掛け合わせて計算結果を求め、ページ上の要素に表示できます。 処理の流れ jQueryの .text() メソッドでスパンタグ内のテキストを取得し、.trim() で前後の空白を除去、さらに .replace(,, ) でカンマを削除したうえで、parseInt() を使って整数に変換します。この一連の処理を行うことで、「1,000」のような金額表記も正しく数値として扱えるようになります。 コード例 以下がサンプルコードです。 <!DOC