HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📌
hkob's Notion
/
ℹ️
逆引きFormula 2.0
/
💾
Database storage
/
🔢
数値を金額表示の文字列に変換するには?
🔢

数値を金額表示の文字列に変換するには?

Status
関数説明
属性名
金額表示(replace複数回)、金額表示(長さを調整)
返り値
String
関連するもの
ℹ️
逆引きFormula 2.0
に戻る
しーさんからのお題です。早速やってみましょう。
  1. 最も簡単なのはreplace を再帰的に使うことで下から,を埋めていく感じです。
  1. 長さを3の倍数にして replaceAll を使うこともできます。
金額
名前
数値
金額表示(replace複数回)
金額表示(長さを調整)
0
0
¥0
¥
1桁
1
¥1
¥1
2桁
12
¥12
¥12
3桁
123
¥123
¥123
4桁
1234
¥1,234
¥1,234
5桁
12345
¥12,345
¥12,345
6桁
123456
¥123,456
¥123,456
7桁
1234567
¥1,234,567
¥1,234,567
8桁
12345678
¥12,345,678
¥12,345,678
9桁
123456789
¥123,456,789
¥123,456,789
10桁
1234567890
¥1,234,567,890
¥1,234,567,890
11桁
12345678901
¥12,345,678,901
¥12,345,678,901
12桁
123456789012
¥123,456,789,012
¥123,456,789,012
13桁
1234567890123
¥1,234,567,890,123
¥1,234,567,890,123
14桁
12345678901234
¥12,345,678,901,234
¥12,345,678,901,234
15桁
123456789012345
¥123,456,789,012,345
¥123,456,789,012,345
16桁
1234567890123456
¥1,234,567,890,123,456
¥1,234,567,890,123,456
17桁
12345678901234568
¥12,345,678,901,234,568
¥12,345,678,901,234,568
18桁
123456789012345680
¥123,456,789,012,345,680
¥123,456,789,012,345,680
19桁
1234567890123456800
¥1,234,567,890,123,456,800
¥1,234,567,890,123,456,800
20桁
12345678901234567000
¥12,345,678,901,234,567,000
¥12,345,678,901,234,567,000
 
let(num_str, /* 数値を文字列に変換 */ prop("数値").format() /* 末尾の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3})$", "$1,$2") /* その前の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3}),", "$1,$2,") /* その前の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3}),", "$1,$2,") /* その前の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3}),", "$1,$2,") /* その前の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3}),", "$1,$2,") /* その前の4桁の数字の間に,を挿入 */ .replace("(\d)(\d{3}),", "$1,$2,"), "¥" + num_str )
/* 数値の先頭に3つの@を付加(自動的に文字列に変換) */ ("@@@" + prop("数値")) /* 3の倍数の長さになるように substring で切り出し */ .substring(prop("数値").length() % 3) /* 頭から3桁ごとに, を付加 */ .replaceAll("(.{3})", "$1,") /* 頭の@と,(ある場合だけ)を¥マークに置換 */ .replace("^@+,?", "¥") /* 末尾の , を削除 */ .replace(",$", "")