JavaScript を使って通貨形式を数値に変換する

はじめに
WebアプリやECサイトの開発では、「¥12,000」や「-$4,400.50」のような通貨形式の文字列を数値に変換して処理する必要がよくあります。しかし、JavaScriptではこのような文字列をそのまま数値として使うと NaN エラーになる場合があります。
本記事では、正規表現と Number()
関数を使って、通貨記号やカンマを除去し、正しく数値型に変換する方法を解説します。
基本の変換方法
以下のようなコードで、通貨表記を数値に変換できます:
var currency = "-$4,400.50";
var number = Number(currency.replace(/[^0-9.-]+/g, ""));
console.log(number); // -4400.5
🔍 解説
1./[^0-9.-]+/g
は、「数字」「小数点」「マイナス記号」以外を削除します。
2.Number() で文字列を数値に変換します。
この方法で、カンマや通貨記号($, ¥, € など)を取り除き、正しく演算できる数値に変換できます。
✅ 汎用関数化(安全チェック付き)
function parseCurrency(str) {
const cleaned = String(str).trim().replace(/[^0-9.-]+/g, "");
const num = Number(cleaned);
return isNaN(num) ? null : num;
}
使用例:
parseCurrency("¥12,000") // 12000
parseCurrency("-€1,234.56") // -1234.56
parseCurrency("abc") // null
⚠ 注意点:
①「–123.45」や 「1.234.56」のような不正な形式は NaN
を返す可能性があります。
②欧州スタイルの表記(例:1.234,56)には非対応。
✅ まとめ
ステップ | 内容 |
---|---|
① | 正規表現で記号を除去 /[^0-9.-]+/g |
② | Number() で数値に変換 |
③ | isNaN() でエラーチェック(任意) |
この方法は、ユーザー入力やAPIの金額データ処理に最適で、フロントエンド開発に広く応用できます。