数字に日本語の桁(万・億・兆)を付けられるJavaScriptのライブラリを探していたのですが、見つからなかったので関数を作りました。
例えば、1002000400000
を1兆20億40万
に変換する感じです。
実際に作った関数は以下になります。
const toJaNum = (num) => {
if (typeof num === "number") {
num = num.toString();
}
let prefix = "";
if (num[0] === "-") {
num = num.slice(1);
prefix = "-";
}
return (
prefix +
num
.slice(0, -12)
.replace(/^0+/, "")
.replace(/([0-9]+)/g, "$1兆") +
num
.slice(-12, -8)
.replace(/^0+/, "")
.replace(/([0-9]+)/g, "$1億") +
num
.slice(-8, -4)
.replace(/^0+/, "")
.replace(/([0-9]+)/g, "$1万") +
num.substring(num.length - 4).replace(/^0+/, "")
);
};
最後に
もっといい書き方や、同じことができるJSのライブラリをご存知であればコメントいただけると嬉しいです。