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を参照する形に修正することで、どの文字列を渡しても正しく動作する汎用的な関数になります。
コードの解説
str.split(",")で文字列をカンマで分割し、配列の長さをチェックします。長さが3以上(=カンマが2つ以上)であれば-1を返します。- 問題がなければ、
replace()を使って「,5」のような1桁の小数部分を「,50」に置き換えます。
出力結果
このコードを実行すると、コンソールには以下のように表示されます。
250,50
このように、split()による検証とreplace()による置換を組み合わせることで、小数部の桁数を揃える処理をわずか数行で実装できます。金額表示など、小数点以下を必ず2桁にしたい場面でぜひ活用してみてください。
-
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
-
JavaScriptでspanタグから価格値を取得し、数値を掛けた結果を表示する方法
スパンタグ(<span>)から価格の値を取得するには、まずタグ内のテキストを抽出し、文字列から整数へ変換します。その後、任意の数値を掛け合わせて計算結果を求め、ページ上の要素に表示できます。 処理の流れ jQueryの .text() メソッドでスパンタグ内のテキストを取得し、.trim() で前後の空白を除去、さらに .replace(,, ) でカンマを削除したうえで、parseInt() を使って整数に変換します。この一連の処理を行うことで、「1,000」のような金額表記も正しく数値として扱えるようになります。 コード例 以下がサンプルコードです。 <!DOC