본문 바로가기
Mechanic: IT 인터넷/Mechanic, M-Tech

JavaScript 금액 표시 콤마 - 12345 → 12,345

by M-LOG : 엠로그 2014. 4. 8.
반응형

원본 작성일: 2014.04.08
보완 작성일: 2026.02.14

금액을 표시할 때 12345보다 12,345가 읽기 편하다. 화면단에서 간단하게 적용할 수 있는 콤마 추가 함수다.

코드

function addComma(str) {
    str = str != null ? str.toString() : '';

    if (str === '') return '0';

    var len = str.length;
    var result = '';

    // i: 앞에서부터 순회, j: 뒤에서부터 카운트
    for (var i = 0, j = len; i < len; i++, j--) {
        // j가 3의 배수이면서 맨 앞이 아닌 위치에 콤마 삽입
        if (j % 3 === 0 && j !== len) {
            result += ',';
        }
        result += str.charAt(i);
    }
    return result;
}

addComma('12345');      // "12,345"
addComma('1000000');    // "1,000,000"
addComma('');           // "0"

동작 원리

12345를 예로 들면 (len = 5):

i j j % 3 j !== len 콤마? result
0 5 2 - X "1"
1 4 1 - X "12"
2 3 0 O O "12,"
3 2 2 - X "12,3"
4 1 1 - X "12,34"

→ 최종: "12,345"

j가 뒤에서 몇 번째인지를 추적하면서, 3의 배수 위치마다 콤마를 넣는 방식이다.

더 간단한 방법들

자세한 비교는 JavaScript 숫자에 콤마 추가하기를 참고.

// toLocaleString (가장 간단)
(12345).toLocaleString();                    // "12,345"

// Intl.NumberFormat (가장 유연)
new Intl.NumberFormat('ko-KR').format(12345); // "12,345"
반응형