script 천단위 콤마 넣기.
출처 - http://mwultong.blogspot.com/2006/12/javascript-comma-number-thousands.html
**정규식 설명:
**숫자의 끝부분부터 매치시키며, 루프 속에서 숫자의 좌측으로 즉 앞쪽으로 이동합니다.
이미 쉼표화가 된 부분이나, 소수부는 (^[+-]?\d+)(\d{3}) 이런 정규식으로 매치되지 않기에, 점점 앞쪽으로 이동하게 됩니다.
$1 은 앞쪽 소괄호가 매치되는 내용 $2 는 뒤쪽 소괄호가 매치되는 내용이기에 그 사이에 쉼표(,)를 넣어주고 치환합니다.
onkeypress 로 해서 입력할때마다 변경하도록 하고 싶었지만
할수가 없어서 focusout을 사용하였다 - 동생 감사 -
function addComma(n) { var reg = /(^[+-]?\d+)(\d{3})/; n += ‘’; while(reg.test(n)){ n = n.replace(reg, ‘$1’ + ‘,’ + ‘$2’); } return n; }
$(‘#charge’).focusout(function(){ $(‘#charge’).val(addComma($(‘#charge’).val())); }); });
————————————- 12.11.02 13시 38분 ————————————
내가 왜 이생각을 못했을까 계속 ㅡㅡ;
1번째 ‘,’ 입력은 잘된다. 하지만 2번째꺼는 안된다. 이유는? 뭔가 문자형타입이 들어가면 안되는것 같다. 따라서 정규식을 이용해서 ‘,’를 삭제 시켜버렸다. 그랬더니 됐다.
간단한 거였는데 좀 모잘라서 어렵게 갔던 것 같다.
$('#charge').keyup(function(){ | $(‘#charge’).val(addComma($(‘#charge’).val().replace(/^$ | ,/g, “”))); |
});
이렇게 했더니 해결 할 수 있었다.