jQueryでカンマ区切りを簡単挿入!3桁ごとに自動フォーマット
jQueryを使って3桁ごとにカンマを挿入する方法
toLocaleString()メソッドを使う
toLocaleString()
メソッドは、数値をロケール設定に従ってフォーマットされた文字列に変換します。このメソッドを使うと、カンマ区切りを含む様々なフォーマットを簡単に設定できます。
// カンマ区切りでフォーマット
var num = 123456789;
var formattedNum = num.toLocaleString();
console.log(formattedNum); // 123,456,789
正規表現を使う
正規表現を使って、数値の文字列を3桁ごとにグループ化し、カンマを挿入することができます。この方法は、より柔軟なフォーマット設定が可能ですが、toLocaleString()
メソッドよりもコードが複雑になります。
// 3桁ごとにカンマ区切り (全角カンマ使用)
var numStr = "123456789";
var formattedNumStr = numStr.replace(/(\d)(?=(\d{3})+$)/g, "$1,");
console.log(formattedNumStr); // 123,456,789
- カンマ区切りの文字列を数値に変換するには、
parseFloat()
メソッドを使います。
<input type="text" id="inputNum" value="123456789">
<button id="formatButton">フォーマット</button>
<span id="formattedNum"></span>
JavaScript
$(document).ready(function() {
$("#formatButton").click(function() {
var numStr = $("#inputNum").val();
var formattedNumStr = numStr.replace(/(\d)(?=(\d{3})+$)/g, "$1,");
$("#formattedNum").text(formattedNumStr);
});
});
説明
- HTMLで、入力フィールド (
inputNum
)、フォーマットボタン (formatButton
)、フォーマットされた数値を表示するスパン要素 (formattedNum
) を定義します。 - JavaScriptで、
formatButton
がクリックされたときの処理を定義します。 - 処理内容は、以下の通りです。
- 入力フィールド (
inputNum
) の値を取得します。 - 正規表現を使って、数値の文字列を3桁ごとにグループ化し、カンマを挿入します。
- フォーマットされた数値を (
formattedNum
) に表示します。
- 入力フィールド (
実行方法
- 上記のHTMLとJavaScriptを保存します。
- HTMLファイルをブラウザで開きます。
- 入力フィールドに数値を入力し、フォーマットボタンをクリックすると、3桁ごとにカンマ区切りされた数値が表示されます。
カスタマイズ
- カンマ区切り文字を他の文字に変更したい場合は、正規表現を修正します。
number
プラグインは、数値のフォーマットを簡単に設定できるjQueryプラグインです。3桁ごとにカンマを挿入することもできます。
// カンマ区切りでフォーマット
$(document).ready(function() {
$("#inputNum").number({ format: "###,###,###" });
});
formatNumber()関数を使う
以下の関数は、数値を3桁ごとにカンマ区切りにフォーマットする関数です。
function formatNumber(num) {
var parts = num.toString().split(".");
var formattedNum = parts[0].replace(/(\d)(?=(\d{3})+$)/g, "$1,") + (parts[1] ? "." + parts[1] : "");
return formattedNum;
}
この関数を使い、以下のようにフォーマットすることができます。
var num = 123456789;
var formattedNum = formatNumber(num);
console.log(formattedNum); // 123,456,789
jQuery UIを使う
jQuery UIには、$.fn.currency()
メソッドという、数値を通貨形式にフォーマットするメソッドがあります。このメソッドを使って、3桁ごとにカンマを挿入することもできます。
// カンマ区切りでフォーマット
$(document).ready(function() {
$("#inputNum").currency({ thousands: ",", decimal: "." });
});
ライブラリを使う
これらの方法はそれぞれ異なるメリットとデメリットがあります。
toLocaleString()
メソッド: シンプルで使いやすいですが、フォーマット設定が制限されます。- 正規表現: 柔軟なフォーマット設定が可能ですが、コードが複雑になります。
- プラグイン: 簡単ですが、ライブラリの追加が必要になります。
- 関数: コードを自分で書く必要があり、メンテナンスが大変になる可能性があります。
- ライブラリ: 豊富な機能を持つものがありますが、使いこなすのに時間がかかる場合があります。
jquery number-formatting