테스트 사이트 - 개발 중인 베타 버전입니다

숫자에 천단위로 콤마(,) 찍기

· 2년 전 · 1053 · 11

정규표현식을 이용하여 숫자에 천단위로 콤마를 삽입하는 실례입니다.

[code]

function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

[/code]

또는

[code]

// 숫자 타입에서 쓸 수 있도록 format() 함수 추가
Number.prototype.format = function(){
    if(this==0) return 0;
 
    var reg = /(^[+-]?\d+)(\d{3})/;
    var n = (this + '');
 
    while (reg.test(n)) n = n.replace(reg, '$1' + ',' + '$2');
 
    return n;
};

console.log(Number(1234567).format()); // 1,234,567

[/code]

 

개발에 좋은 팁이 되길 바랍니다,

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 11개

new Intl.NumberFormat().format(1234567);

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
@jihan6? 자바스크립트에 디폴트 함수가 있었네요, 단, 브라우저를 좀 가리는듯합니다,.
@jihan6? 저 같은 경우에는 Intl 객체가 있으면 그걸 쓰고, 없는 환경에서만 fallback으로 쓰고 있습니다.
@SimpleCode polyfill 사용이 유용하죠.
https://formatjs.io/docs/polyfills/
2년 전
@jihan6?
우리나라 거는 없네요.
@엑스엠엘 ???

const number = 123456.789;
console.log(new Intl.NumberFormat('ko-KR').format(number));
// 아무것도 지정하지 않으면 사용자 브라우저 설정에 따라 자동 처리
console.log(new Intl.NumberFormat().format(number));
2년 전
@jihan?
우리나라는 네 자리마다(만 단위) 끊어 줘야
읽기가 좋습니다.
@엑스엠엘
말씀하시는 “우리나라”가 어느 나라길래 네자리씩 끊죠?

const number = 123456.789
console.log(new Intl.NumberFormat('ko-KR').format(number));
console.log(new Intl.NumberFormat().format(number));

output
> "123,456.789"
> "123,456.789"

이것과 다르게 나오나요?
2년 전
@jihan?
표현이 좀 부족했네요.
우리나라 말에 맞은 표현(포맷)이라고 했어야 했네요.
2년 전
그냥

return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

이렇게만 해도 ...되지 않나요.

게시글 목록

번호 제목
17316
17315
17313
17312
17305
17304
17298
17294
17291
17285
17284
17279
17272
17271
17270
17262
17255
17248
17241
17238
17236
17220
17217
JavaScript 회원가입 2
17216
17214
17207
17205
17203
17201
17198