Contents
see ListJavaScript 천단위 콤마 찍기
숫자에 천단위마다 콤마를 추가하여 가독성을 높이는 방법입니다.
정규표현식 사용
// 기본 방법
var number = 1234567890;
var formatted = number.toString().replace(/(d)(?=(?:d{3})+(?!d))/g, "$1,");
// 결과: "1,234,567,890"
toLocaleString() 사용 (권장)
var number = 1234567890;
var formatted = number.toLocaleString(); // "1,234,567,890"
// 소수점 포함
var decimal = 1234567.89;
decimal.toLocaleString(); // "1,234,567.89"
// 특정 로케일 지정
number.toLocaleString("ko-KR"); // 한국 형식
number.toLocaleString("en-US"); // 미국 형식
다양한 구현 방법
// 함수로 만들기
function numberWithCommas(x) {
return x.toString().replace(/B(?=(d{3})+(?!d))/g, ",");
}
// 사용
numberWithCommas(1234567); // "1,234,567"
// 소수점 처리 포함
function formatNumber(num) {
var parts = num.toString().split(".");
parts[0] = parts[0].replace(/B(?=(d{3})+(?!d))/g, ",");
return parts.join(".");
}
formatNumber(1234567.89); // "1,234,567.89"
Intl.NumberFormat 사용
var formatter = new Intl.NumberFormat("ko-KR");
formatter.format(1234567890); // "1,234,567,890"
// 통화 형식
var currencyFormatter = new Intl.NumberFormat("ko-KR", {
style: "currency",
currency: "KRW"
});
currencyFormatter.format(1234567890); // "uffe61,234,567,890"
// 소수점 자릿수 지정
var decimalFormatter = new Intl.NumberFormat("ko-KR", {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
decimalFormatter.format(1234567.8); // "1,234,567.80"
콤마 제거 (숫자로 변환)
var formatted = "1,234,567,890";
// 콤마 제거
var number = parseInt(formatted.replace(/,/g, ""));
// 또는
var number = Number(formatted.replace(/,/g, ""));
jQuery 플러그인 방식
$.fn.formatNumber = function() {
return this.each(function() {
var num = $(this).text();
$(this).text(Number(num).toLocaleString());
});
};
// 사용
$(".number").formatNumber();