TIL 30. 숫자 원단위로 바꾸는 정규식 표현

주민콩·2021년 2월 9일
0

엄청난 큰 숫자를 천만원 단위로 끊어야 할 때가 있다.
그럴때 이 정규식을 사용하면 간단하게 표현할 수 있다!!!!

const countNumber = (number) => {
        var inputNumber = number < 0 ? false : number;
        var unitWords = ['', '만원'];
        var splitUnit = 10000;
        var splitCount = unitWords.length;
        var resultArray = [];
        var resultString = '';

        for (var i = 0; i < splitCount; i++) {
            var unitResult = (inputNumber % Math.pow(splitUnit, i + 1)) / Math.pow(splitUnit, i);
            unitResult = Math.floor(unitResult);
            if (unitResult > 0) {
                resultArray[i] = unitResult;
            }
        }

        for (var i = 0; i < resultArray.length; i++) {
            if (!resultArray[i]) continue;
            resultString = String(resultArray[i]) + unitWords[i] + resultString;
        }

        return resultString;
    };
var unitWords = ['', '만원'];
var splitUnit = 1000;

나는 천만원으로 끊으려고 1000을 splitUnit으로 잡고 단위를 '만원'으로 표기했다 👀
만약 억, 조 등으로 표현하고 싶으면 만원 뒤에 '억', '조'; 라고 표기하면 된다!

그리고 아래에 써줄땐

<div className='info'>
  {countNumber(content.estimatedInitialInvestmentCost).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
</div>

이렇게만 써주면 우리가 원하는 대로 나온다 !!

하지만 더 간단한 법이 있지

return (number / 10000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' 만원';

이렇게 한줄만 써줘도 4,928만원으로 표기할 수 있다.

profile
코딩하면서 기록하는 메모장 ᰔ

0개의 댓글