YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > Javascript
검색
멤버이름    오토
비밀번호 
 

숫자에 컴마(,) 쓰기

페이지 정보

작성자 MintState 댓글 0건 조회 10,471회 작성일 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>
첨부 파일
파일 종류: rar naver_functions.rar (11.9K, 31 views)

댓글목록

등록된 댓글이 없습니다.

Total 178건 5 페이지
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2021, YesYo.com MintState. ™