記事内にはプロモーションが含まれています

【JavaScript】数値を3桁カンマ区切りにする方法

【JavaScript】数値を3桁カンマ区切りにする方法 JavaScript

ECサイトの価格表示や、管理画面のデータ集計など、Webサイトで数値を扱う場面は非常に多くあります。

その際、ユーザーにとって読みやすい形式にするために必須となるのが「3桁ごとのカンマ区切り(1,000,000)」です。

かつては複雑な正規表現を使って実装することもありましたが、現在のJavaScriptでは、標準で用意されている便利なメソッドを使うのが常識となっています。

この記事では、最も簡単で推奨される toLocaleString() メソッドの使い方から、通貨記号や小数点を細かく制御できる Intl.NumberFormat の活用法、さらには「カンマを取り除いて数値に戻す方法」まで、実務で役立つテクニックを網羅的に解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はプログラミングスクールを運営
  • モットーは「利他の精神」
💻 本記事の検証環境(2026年2月確認)
  • OS:Windows 11 / macOS Sequoia
  • IDE:Visual Studio / VS Code / IntelliJ IDEA
  • その他:Chrome DevTools / 各言語最新安定版

※本メディアでは、上記環境にてコードの動作と情報の正確性を検証済みです。

数値を3桁カンマ区切りにする最も簡単な方法(toLocaleString)

数値をカンマ区切りの文字列に変換したい場合、最も手軽で確実なのが Number.prototype.toLocaleString() メソッドを使用する方法です。

これは数値(Number型)に対して呼び出すことができるメソッドで、ブラウザの言語設定(ロケール)に合わせて適切なフォーマットに変換してくれます。

toLocaleString() の基本的な使い方

const price = 1234567;
const formatted = price.toLocaleString();

console.log(formatted);
実行結果:
1,234,567
変数の price には数値の 1234567 が入っています。
この数値変数に対して .toLocaleString() を実行するだけで、自動的に3桁ごとにカンマが挿入された文字列 "1,234,567" が生成されます。
引数を何も指定しない場合は、実行しているブラウザのデフォルトの言語設定(日本なら日本語)に合わせてフォーマットされます。

ロケール(国・地域)を明示的に指定する場合

基本的には引数なしで問題ありませんが、ユーザーの環境に関わらず「日本の形式」や「アメリカの形式」で固定したい場合は、第1引数にロケールコードを指定します。

const num = 1234567.89;

// 日本形式(3桁カンマ、小数はドット)
console.log(num.toLocaleString('ja-JP'));

// ドイツ形式(3桁ドット、小数はカンマ)
console.log(num.toLocaleString('de-DE'));
実行結果:
1,234,567.89
1.234.567,89
toLocaleString('ja-JP') と指定すると、明示的に日本のフォーマットルールが適用されます。
一方で、toLocaleString('de-DE') を指定するとドイツの形式になります。
ドイツなどのヨーロッパ圏では、桁区切りに「ドット」、小数点に「カンマ」を使う文化があるため、出力結果が 1.234.567,89 のように日本とは逆になります。
このように、グローバル対応が簡単にできるのもこのメソッドの強みです。

より細かく制御するならIntl.NumberFormat(高機能)

toLocaleString() は手軽ですが、大量の数値を処理する場合や、オプションを細かく設定して使い回したい場合は、Intl.NumberFormat オブジェクトを使用するのがベストプラクティスです。

これは国際化対応のためのAPIで、パフォーマンスも良く、柔軟な設定が可能です。

通貨(円・ドル)としてフォーマットする

単にカンマを入れるだけでなく、「円」や「¥」マークをつけたい場合は、style オプションを使用します。

const price = 5000;

// 日本円としてフォーマット
const jpyFormatter = new Intl.NumberFormat('ja-JP', {
    style: 'currency',
    currency: 'JPY'
});

console.log(jpyFormatter.format(price));
実行結果:
¥5,000
new Intl.NumberFormat() の第2引数にオプションオブジェクトを渡しています。
style: 'currency' は通貨モードにする設定で、currency: 'JPY' は日本円を指定しています。
これによって生成されたフォーマッターの .format(price) メソッドを呼び出すと、数値が ¥5,000 という文字列に変換されます。
自分で「¥」という文字を結合する必要がないため、非常にスマートです。

小数点の桁数を指定してフォーマットする

「小数点以下2桁まで必ず表示したい(100.00など)」といった場合も、オプションで制御できます。

const num = 1234.5;

const formatter = new Intl.NumberFormat('ja-JP', {
    minimumFractionDigits: 2, // 小数点以下の最小桁数
    maximumFractionDigits: 2  // 小数点以下の最大桁数
});

console.log(formatter.format(num));
実行結果:
1,234.50
minimumFractionDigits は「小数点以下を最低何桁表示するか」という設定です。
ここでは 2 を指定しているため、元の数値が 1234.5 であっても、足りない桁が0で埋められて .50 と表示されます。
maximumFractionDigits は最大桁数で、これを超えた場合は四捨五入されます。
これにより、表記揺れのないきれいな数値を表示できます。

文字列操作で実装?正規表現を使った3桁区切り

現在は推奨されませんが、古いブラウザ対応や、toLocaleString が使えない特殊な環境(あるいは純粋な文字列処理として実装したい場合)では、正規表現を使ってカンマ区切りを実現することもあります。

知識として知っておくと、レガシーコードの修正などで役立ちます。

replaceメソッドと正規表現のコード

function formatNumber(num) {
    // 文字列に変換してから置換
    return String(num).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
}

console.log(formatNumber(1234567));
実行結果:
1,234,567
この正規表現は「後ろから3桁ずつの数字の塊が続く位置にある数字」を探し、その数字の後ろにカンマを挿入するという処理を行っています。
具体的には、(\d) で数字をキャプチャし、(?=(\d{3})+(?!\d)) という先読み(ルックアヘッド)を使って、その数字の後ろに「3の倍数個の数字」が続いているかを確認しています。
条件に合致した場合、'$1,' で元の数字の後ろにカンマを追加します。

カンマ区切りの文字列を数値に戻す方法(削除)

逆に、入力フォームなどでユーザーが入力した「1,000」のようなカンマ付き文字列を、計算のために数値の「1000」に戻したい場合もあります。

この場合は、単にカンマを空文字に置換してから数値変換を行います。

replaceとNumber関数を使う

const strPrice = "1,234,567";

// カンマをすべて取り除く
const rawStr = strPrice.replace(/,/g, '');

// 文字列を数値に変換
const priceNum = Number(rawStr);

console.log(priceNum);
console.log(priceNum + 1); // 計算できるか確認
実行結果:
1234567
1234568
まず strPrice.replace(/,/g, '') を使って、文字列に含まれるすべてのカンマ(/gフラグで全置換)を空文字に置き換えます。
これで "1234567" という純粋な数字の文字列になります。
その後、Number() 関数を使って文字列型を数値型(Number型)に変換しています。
これで、足し算などの計算が可能になります。

JavaScriptのスキルを活かして年収を上げる方法

以上、JavaScriptで数値を3桁カンマ区切りにする方法について詳しく解説してきました。

なお、JavaScriptのスキルがある場合には、「副業で稼いで年収を上げる」といったことが可能です。
JavaScriptのスキルを持つ人は多いものの、その分案件数も多く、副業エージェントやフリーランスエージェントを利用することで予想外の高単価案件が見つかることもあります。
エージェントサービスは、登録も利用もすべて完全無料なので、どんな求人や案件があるのか気になる方は、気軽に利用してみるとよいでしょう。
エンジニアのキャリア・スキルアップ相談窓口
当ブログの読者に選ばれている、実績豊富な転職エージェントを厳選しました。
【転職】年収・環境を改善したい
年収アップにこだわりたい方 (平均アップ額138万円の実績)
未経験・経験者問わず幅広く探したい方
業界に精通した担当者に相談したい方
ゲーム業界への転職を志望する方
エンジニア未経験からキャリアを築く方
【独立】フリーランスとして稼ぎたい
国内最大級のフリーランス案件数から比較したい方
週1〜3日など柔軟な働き方を希望する方
【学習】スキルに不安のある方向け(格安スクール「デイトラ」)