入力された数値(マイナス、小数も可)に3桁ごとにカンマを付けます。
最初にカンマを除去しますので、不適切な位置にカンマが入力された場合も、正しく3桁ごとにカンマが付きます。
replace(正規表現指定)を使用して、入力された数値を小数を除く下桁から順に3桁に分割し、カンマを付加します。
入力確定後(カーソル移動時)に、カンマが付きます。
数値を入力 |
---|
上記javascriptのwhile部分の動作を、実行ボタンを押下する都度実行します。
但し、不適切な位置にカンマや小数点が入力された場合、正しく動作しません。
その場合、カンマや小数点より上位桁にのみ、カンマが付きます。
『replace(正規表現指定)内容:(/^(-?\d+)(\d{3})/, "$1,$2")の説明』
①^:先頭から参照
②(-?\d+):1桁以上の数字(マイナスも可) ← 下記③を除いた数字
③(\d{3}):数字3桁
④$1:上記②が格納される
⑤,(カンマ):④と⑥の間に設定される
⑥$2:上記③が格納される
数値を入力 |
---|
toLocaleStringは、対象のオブジェクトを、現在のロケールに応じた形式で変換を行った結果を返します。
対象のオブジェクトがnumber、ロケールが日本語の場合、3桁ごとにカンマが付きます。
入力確定後(カーソル移動時)に、カンマが付きます。
下記javascriptでは、ロケールに日本語を、小数桁を5桁(6桁目を四捨五入)に指定しています。
(ロケールが日本語であれば指定なしでも同様の結果になります。小数桁のデフォルトは3桁です。)
数値を入力 |
---|
toLocaleStringのoptionのstyleに通貨フォーマットを指定すると、通貨に応じた区切り文字と通貨記号が付きます。
日本円の場合、3桁ごとにカンマと¥が付加されます。(ブラウザによっては、小数以下が切り捨てられます。)
入力確定後(カーソル移動時)に、カンマと¥が付きます。
下記javascriptでは、styleに通貨を、currencyに日本円を指定しています。
指定内容:toLocaleString("jp",{style:"currency",currency:"JPY"})
数値を入力 |
---|