逆引きFormula 2.0 に戻る
しーさんからのお題です。早速やってみましょう。
- 最も簡単なのはreplace を再帰的に使うことで下から,を埋めていく感じです。
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の倍数にして replaceAll を使うこともできます。
/* 数値の先頭に3つの@を付加(自動的に文字列に変換) */ ("@@@" + prop("数値")) /* 3の倍数の長さになるように substring で切り出し */ .substring(prop("数値").length() % 3) /* 頭から3桁ごとに, を付加 */ .replaceAll("(.{3})", "$1,") /* 頭の@と,(ある場合だけ)を¥マークに置換 */ .replace("^@+,?", "¥") /* 末尾の , を削除 */ .replace(",$", "")
金額
名前
数値
金額表示(replace複数回)
金額表示(長さを調整)