본문 바로가기

프로그래밍/JavaScript

[JS] 숫자 천단위마다 쉼표(콤마 ,) 제거

function RemoveComma(str){
return parseInt(str.replace(/,/g,""));
}

사용법

var assetprice = "123,456";

RemoveComma(assetprice);

=======================================

이 글을 포스팅한 다음 직접 사용해보았더니 문제가 생겼다.

알고보니 replace가 모든 ,를 다 없애주는 것이 아니었던것이다.

replace는 오직 1회에 한해서만 작동한다.

그래서 자리수가 100만이상 올라가기 시작하면 콤마가 제대로 제거되지 않아

콤마를 다시 삽입할 시 엉망으로 삽입된다.

replace가 1회만 작동한다고 생각하면 모두 변환시키는 함수로 생각할 수 있는 것이 replaceall()

그러나 JS에는 실제로 이 함수는 존재하지않는다.

그러나 아래 함수몇개만 있으면 replaceall을 만들 수 있다.

str.split('$') : str변수값을 $를 기준으로 배열로 분리시킨다.

join('&') : 구분자&를 넣어 배열을 문자열로 합친다.

즉, str.split(',').join('')

이렇게 쓰면 str 변수값을 ','를 구분자로 분리하여 배열에 저장한 다음 그 배열값들을 ''을 구분자로 하여(=구분자를 사용하지 않고) 합친다는 의미

function RemoveComma(str){
return parseInt(replaceall(str, ",", ""));
}

function replaceAll(str,orgStr,repStr){
return str.split(orgStr).join(repStr);
}