프로그래밍/웹 관련

[javascript] 숫자에 천단위 마다 콤마(,) 넣기

채윤아빠 2018. 10. 26. 16:37



특정 숫자에 천단위 마다 콤마를 넣기 위하여 다음 정규표현식을 이용하면 간단하게 해결된다.
아래와 같이 하면, 정수형에 대해서는 아무런 문제가 발생하지 않으나, 소수점이 있는 실수형의 경우에는 오류가 발생하게 된다.

function toCommaString( number ) {
    var regexp = /\B(?=(\d{3})+(?!\d))/g;
    return number.toString().replace( regexp, ',' );
}

그래서 아래와 같이, 정수형과 실수형을 구분하여 함수를 만들어서 사용한다.

function toCommaStringF( number ) {
    var number_string = number.toString();
    var number_parts = number_string.split('.');
    var regexp = /\B(?=(\d{3})+(?!\d))/g;
    if (number_parts.length > 1) {
        return number_parts[0].replace( regexp, ',' ) + '.' + number_parts[1];
    }
    else {
        return number_string.replace( regexp, ',' );
    }
}

// 사용예
console.log("Test = " + toCommaStringF(123456789));
console.log("Test = " + toCommaStringF(123456789.1234567));

// 실행결과
Test = 123,456,789
Test = 123,456,789.1234567

숫자가 실수형인지 정수형인지 확정할 수 없는 경우에는 실수형 함수를 호출하여, 실수형에 대한 오류를 방지한다.




728x90
반응형