Where The Streets Have No Name

통화단위 형식 처리 (-00,000,000.00000) (음수, 소숫점) 본문

Developement/Web

통화단위 형식 처리 (-00,000,000.00000) (음수, 소숫점)

highheat 2006. 5. 30. 20:50

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=43989&page=11

<script type="text/javascript">
<!--
/*
* 통화단위 형식 처리 (-00,000,000.00000) (음수, 소숫점)
* 원소스 : Nextream, http://jsguide.net/ver2/examples/index.php?mode=view&uid=155
* 수정 : 동철, onuo.com
*/
function number_format(numstr, ret) {
 numstr = SetComma(DelComma(numstr));
 if (ret)
     ret.value = numstr;
 return numstr;
}

// 숫자에 콤마를 찍는다.
function SetComma(numstr) {
 numstr = String(numstr);
 var re0 = /^(-?d+)(d{3})($|..*$)/;
 if (re0.test(numstr))
     return numstr.replace(re0,
         function(str,p1,p2,p3) {
             return SetComma(p1) + ',' + p2 + p3;
         }
     );
 else
     return numstr;
}
String.prototype.SetComma = function () {
 return SetComma(this);
}

// 문자를 숫자로 정리한다.
function DelComma(numstr) {
 numstr = String(numstr);
 if (numstr == '') return '0';
 else if (numstr == '-') return '0';
 else if (numstr == '0-') return '-0';
 numstr = numstr.replace(/[^d.-]/g,'');
 numstr = String(numstr.match(/^-?d*.?d*/));
 numstr = numstr.replace(/^(-?)(d*)(.*)/,
     function(str,p1,p2,p3) {
         p2 = (p2>0) ? String(p2.match(/[1-9]d*$/)) : '0';
     //    p2 = (p2>0) ? String(parseInt(p2,10)) : '0';
         return p1 + p2 + p3;
     }
 );
 return numstr;
}
String.prototype.DelComma = function () {
 return DelComma(this);
}

// 소숫점 자릿수를 조정한다.(버림)
function cutFloat(numstr, length) {
 numstr = String(numstr);
 eval('var re0 = /.*\.\d{'+ length +'}/;');
 if (re0.test(numstr))
     numstr = String(numstr.match(re0));
 return numstr;
}
String.prototype.cutFloat = function (length) {
 return cutFloat(this,length);
}
//-->
</script>


<style type="text/css">
.number_format {
 text-align: right;
}
</style>

<input type="text" size="40" id="num_test" onKeyUp="number_format(this.value, this);" onClick="this.select();" class="number_format">