텍스트박스에 숫자 입력시 3자리 마다 콤마(,)를 찍어야할 필요가 있을 경우,
단순 콤마만 찍기는 그다지 어렵지 않지만,
단순 자연수가 아닌 음수값(-)이나 소수(.)로 이루어진 숫자일 경우에는
정수 부분에만 3자리마다 콤마를 찍기에는 다소 난감하다.
거기다 콤마(,), 점(.), 음수(-)를 제외한 숫자만 입력 가능해야 하는 옵션은 필수일 것이다.
입력값(음수,소수 포함)의 정수부분에만 3자리 콤마를 자동으로 찍어주도록 구성해 보았다.
<script type="text/javascript">
String.prototype.comma = function() {
tmp = this.split('.');
var str = new Array();
var v = tmp[0].replace(/,/gi,'');
for(var i=0; i<=v.length; i++) {
str[str.length] = v.charAt(v.length-i);
if(i%3==0 && i!=0 && i!=v.length) {
str[str.length] = '.';
}
}
str = str.reverse().join('').replace(/\./gi,',');
return (tmp.length==2) ? str + '.' + tmp[1] : str;
}
function onlyNum(obj) {
var val = obj.value;
var re = /[^0-9\.\,\-]/gi;
obj.value = val.replace(re, '');
}
</script>
<input type="text" onkeyup="onlyNum(this);this.value=this.value.comma();" />
'Javascript' 카테고리의 다른 글
sleep() in JavaScript (0) | 2009.07.15 |
---|---|
자바스크립트 폼 리셋 (0) | 2009.03.31 |
자바스크립트 랜덤 문자열 생성 (0) | 2009.03.04 |