숫자에 컴마(,) 쓰기
페이지 정보
작성자 MintState 댓글 0건 조회 13,304회 작성일 08-11-17 11:55본문
숫자에 컴마(,) 쓰기
여러가지 다른 함수도 포함 되어 있으니 활용하면 좋을 것 같습니다.
여러가지 다른 함수도 포함 되어 있으니 활용하면 좋을 것 같습니다.
<SCRIPT lang=JScript>
function SetNum(obj){
val=obj.value;
re=/[^0-9]/gi;
obj.value=val.replace(re,"");
}
function onlyNum2(obj) {
if (event.keyCode >= 48 && event.keyCode <= 57) { //숫자키만 입력
return true;
} else {
Event.returnValue = false;
}
}
function onlyNum(el){
el.value = el.value.replace(/\D/g,'');
}
function removeTag(s) {
switch ( typeof s ) {
case "string": return s.replace(/<[^<>]+>/g, "");
default : return s;
}
}
function removeFlag(s) {
switch ( typeof s ) {
case "string": return s.replace(/[↑▲↓▼]/g, "");
case "number": return s;
default : return "";
}
}
function removeComma(s) {
return s.replace(/[, ]/g, "")
}
function tagToNumber(tag) {
try{
return Number(removeTag(tag).replace(/[, ]/g, ""));
}catch(e){ return tag; }
}
function nbformat(numstr) {
var re0 = /(\d+)(\d{3})($|\..*)/;
if (re0.test(numstr)) return numstr.replace(re0,function(str,p1,p2,p3) { return nbformat(p1) + "," + p2 + p3; });
else return numstr;
}
function comma(s) {
var numstr;
switch ( typeof s ) {
case "string": numstr = removeComma(s); break;
case "number" : numstr = String(s); break;
default: return "0";
}
return nbformat( numstr, 3);
}
function addZero(number) {
var numStr = number+"";
return ( number < 10 ) ? ("0" + numStr): numStr;
}
function getNewDate( odata, dtype, doppset ){
var nDate;
nDate = (odata != "") ? new Date(odata.substr(0,4), odata.substr(4,2)-1,odata.substr(6,2)) : new Date();
if( dtype == 'Y' ) nDate = new Date( tagToNumber(odata.substr(0,4))+doppset, odata.substr(4,2)-1,odata.substr(6,2)) ;
else if( dtype == 'M' ) nDate = new Date(odata.substr(0,4), tagToNumber(odata.substr(4,2))-1+doppset, odata.substr(6,2)) ;
else nDate = new Date(odata.substr(0,4), odata.substr(4,2)-1, tagToNumber(odata.substr(6,2))+doppset) ;
var cdate = nDate.getYear() + addZero(nDate.getMonth() + 1) + addZero(nDate.getDate())
return cdate;
}
function getMonth( edate, prevnext ) {
var endDate = (edate != "") ? new Date(edate.substr(0,4), edate.substr(4,2)-1,edate.substr(6,2)) : new Date();
if (isNaN(edate)) { endDate=new Date(); }
endDate.setMonth(endDate.getMonth() + prevnext );
var cMonth = endDate.getMonth() + 1;
var cDay = endDate.getDate() - 1;
return endDate.getYear() + addZero(cMonth) + addZero( cDay);
}
function getDate(){
var date = new Date();
return formatDate2(date, 'YMd');
}
function formatDate2(d, format) {
var r = "";
for ( var n = 0, cnt = format.length; n < cnt; n++ ) {
var c = format.charAt(n);
switch ( c ) {
case "Y": r += String(d.getFullYear()).npad(4); break;
case "M": r += String(d.getMonth()+1).npad(2); break;
case "d": r += String(d.getDate() ).npad(2); break;
case "H": r += String(d.getHours() ).npad(2); break;
case "m": r += String(d.getMinutes()).npad(2); break;
case "s": r += String(d.getSeconds()).npad(2); break;
default : r += c;
}
}
return r;
}
function formatDate(d, format) {
var r = "";
var c;
for ( var n = 0, cnt = format.length, i=0; n < cnt; n++ ) {
c = format.charAt(n);
switch ( c ) {
case "Y":
case "y":
case "M":
case "D":
case "d":
case "H":
case "h":
case "m":
case "S":
case "s": r += d.charAt(i); i++; break;
case "r": i++; break;
default : r += c;
}
}
return r;
}
function dateFormat(dateStr) {
if (dateStr) return dateStr.length >= 8 ? (dateStr.substr(0, 4)+"/"+dateStr.substr(4, 2)+"/"+dateStr.substr(6, 2)): (dateStr.substr(0, 2)+"/"+dateStr.substr(2,2));
else return "";
}
function timeFormat(timeStr) {
try{
if ( !isNaN(timeStr) )
return timeStr.length >= 6 ? (timeStr.substr(0, 2)+":"+timeStr.substr(2, 2)+":"+timeStr.substr(4, 2)):(timeStr.substr(0, 2)+":"+timeStr.substr(2, 2));
else{
if( timeStr.indexOf('J') == -1 )
return (timeStr.substr(0, 1)+":"+timeStr.substr(1, 1)+":"+timeStr.substr(2, 1));
else
return timeStr.substr(0, 2)+":"+timeStr.substr(2, 2);
}
}catch(e){
return "";
}
}
function unFormat( dateStr ){
return dateStr.replace(/[/ :]/g, "");
}
function window.onload() {
//initTable([table1]);
if('800000' != ''){
document.f1.principal_money.value = comma(800000);
}
}
var g_principal_money;
var g_cma_interest_rates;
var g_cma_interest;
var g_difference_money;
function calculateMoney(){
clearTable();
g_cma_interest_rates = "4.8";
with(document.f1){
g_principal_money = tagToNumber(principal_money.value);
deposit_interest = Math.round(g_principal_money * deposit_interest_rates.value * investment_period.value /1200);
//alert("deposit_interest:" + deposit_interest);
cma_interest = Math.round(g_principal_money * g_cma_interest_rates * investment_period.value /1200);
table1.setHTML( 'cma원금' , principal_money.value + '원');
table1.setHTML( '은행원금' ,principal_money.value + '원');
table1.setHTML( 'cma이자' , comma(cma_interest) + '원');
table1.setHTML( '은행이자' ,comma(deposit_interest) + '원');
table1.setHTML( 'cma합계' , comma(g_principal_money + cma_interest) + '원');
table1.setHTML( '은행합계' ,comma(g_principal_money + deposit_interest) + '원');
g_difference_money = comma(cma_interest - deposit_interest);
}
document.f2.difference_money.value = g_difference_money;
}
function my_submit(){
with(document.f1){
if(principal_money.value == '' || principal_money.value <= 0){
alert("예치금액을 입력해 주세요!");
principal_money.focus();
return;
}
if(investment_period.value == '' || investment_period.value <= 0){
alert("투자기간을 입력해 주세요!");
investment_period.focus();
return;
}
principal_money.value = tagToNumber(principal_money.value);
}
document.f1.submit();
}
</SCRIPT>
<FORM name=f1 action=/fnc/mall/fund/cma_simulation.jsp>
<INPUT onkeyup=this.value=comma(this.value); style="WIDTH: 100px" name=principal_money>원
<INPUT class=txt_8c style="WIDTH: 50px" maxLength=3 value=1 name=investment_period>일
<input type=text name=test onkeyup='SetNum(this)' onblur='SetNum(this)'>
<IMG style="CURSOR: hand" onclick=JavaScript:my_submit(); src="btn.gif" align=absMiddle>
</FORM>
<script language=javascript>
function fn_number_format(Cost)
{
Cost = parseFloat(Cost);
// Cost값이 0보다작으면(음수이면) Cost를 양수로변경하고 minus값도 변경
if (Cost < 0) { Cost *= -1; var minus = true; }
else var minus = false;
// Cost값에서 소숫점위와 아래를 분리하여 dotU/dotD변수에저장
// Cost가 숫자이기 때문에 문자로 변환하기 위해 (Cost + "") 에서 ""을 붙여줌
// split함수사용예
// AF = abcdefg.split("c")
// AF[0] =>ab
// AF[1] =>defg
var dotPos = (Cost + "").split (".");
var dotU = dotPos [0];
var dotD = dotPos [1];
// dotU(소수점위)를 3으로나누어 그 나머지를 CommaFlag에저장
// 돈에 콤마를 표시할때 3자리 단위로 표시하기때문에...
var CommaFlag = dotU.length % 3;
// 나머지가 있을경우 (예: 12345 또는 12345678 ...)
if (CommaFlag) {
// out에 dotU앞자리를 CommaFlag길이만큼 대입
var out = dotU.substring (0, CommaFlag);
// dotU의 길이가 3자리 초과이면 out문자끝에 콤마를 추가
if (dotU.length > 3) out += ",";
}
// 나머지가 없을경우(예: 123 또는 123456 ...)
else var out = "";
// dotU문자에서 CommaFlag만큼 이동한후 세글자 단위로 콤마를 찍음
for (var i = CommaFlag; i < dotU.length; i += 3) {
out += dotU.substring (i, i + 3);
if (i < dotU.length - 3) out += ",";
}
// 음수일경우 out 변수값앞에 "-"를 추가
if (minus) out = "-" + out;
// 소숫점이하값이 있으면 out변수값에 소숫점을 추가하여 리턴
if (dotD) return out + "." + dotD;
else return out;
}
function fn_check_number() {
var str = frmAGS_pay.Amt.value;
str = str.replace(/[^0-9]/g, "");
if ( str == "" ) {
str = 0;
}
frmAGS_pay.Amt.value = fn_number_format(str);
}
</script>
<FORM name=frmAGS_pay action=/fnc/mall/fund/cma_simulation.jsp>
<input name="Amt" type="text" class="input" style="width:130px;height:18px" onchange="javascript:fn_check_number()" onblur="javascript:fn_check_number()" onkeyup="javascript:fn_check_number()" /> 원
</FORM>|
|
댓글목록
등록된 댓글이 없습니다.





숫자에 컴마(,) 쓰기