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

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

· 2년 전 · 1050 · 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, ",");

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

게시글 목록

번호 제목
17443
17442
17441
17440
17438
17436
17435
17433
17432
17430
17426
17416
17413
17401
17391
17379
17375
17374
17362
17350
17348
17341
17339
17335
17334
17333
17332
17331
17330
17329