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

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

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

[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/
@jihan6?
우리나라 거는 없네요.
@엑스엠엘 ???

const number = 123456.789;
console.log(new Intl.NumberFormat('ko-KR').format(number));
// 아무것도 지정하지 않으면 사용자 브라우저 설정에 따라 자동 처리
console.log(new Intl.NumberFormat().format(number));
@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"

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

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

이렇게만 해도 ...되지 않나요.
감사합니다. 工作一结束手机就销毁。

게시글 목록

번호 제목
16181
16175
16173
16172
16170
16168
16167
16161
16152
16145
16133
16131
16128
16122
16117
16102
16099
16095
16089
16088
16077
16065
16060
jQuery atj.js 3
16055
16052
16051
16050
16046
16039
16027