Javascriptで数値を4桁区切りにする

例えば、1950000000という数字を受け取って、19億5,000万にするとか、10058を受け取って1万58にするとか、そういうやつ

  1. 数字を文字列に変換する
  2. 正規表現のルールを定義する
  3. 元数字の文字列を、正規表現で4桁ずつ分割し配列にする
  4. 配列を順逆にする
  5. 配列をループする
  6. 配列をそれぞれ0,000の形式にconvertする
  7. index==0なら result = convert
  8. index=1なら result = convert + 万 + result
  9. index=2なら result = convert + 億 + result

このロジックをコードに落とすと以下になる

const formatNumberWithUnit = (amount: number) => {
    const numberString = amount.toString();
    const regex = /(\d{1,4})(?=(?:\d{4})+$)|(\d{1,4}$)/g;
    let numberArray = numberString.match(regex);

    if (numberArray) {
        numberArray.reverse();
        let result = '';
        numberArray.forEach((item, index) => {
            const changeNum = parseInt(item).toLocaleString("ja-JP");
            switch(index) {
                case 0:
                    changeNum > '0' ? result = changeNum : '';
                    break;
                case 1:
                    result = `${changeNum}万${result}`;
                    break;
                case 2:
                    result = `${changeNum}億${result}`;
                    break;
            }
        });
        return result;
    }
};