반응형
원본 작성일: 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"반응형
'Mechanic: IT 인터넷 > Mechanic, M-Tech' 카테고리의 다른 글
| jQuery Selector 정리 - 선택자 문법과 Vanilla JS 대응표 (1) | 2014.09.25 |
|---|---|
| JavaScript 문자열 자르기 - substring, slice, substr 차이 정리 (0) | 2014.04.08 |
| JavaScript Map 구현과 URL 파라미터 파싱 - ES5 시대의 방법 (0) | 2014.04.08 |
| JavaScript 이메일 형식 체크와 한글 입력 검증 - 정규식 vs charCode (1) | 2014.04.08 |
| Eclipse에서 jQuery 오류 표시 제거하기 - JavaScript Include Path 설정 (0) | 2014.02.15 |