뒷자리부터 한글짜식 단위 붙여가며 한글로 바꾸는 방식입니다;
음수는 안됩니당;

<script>
function trans_han(sour, targ){
    s = document.getElementsByName(sour)[0].value;
    t = document.getElementById(targ);
    if(s.length > 16){
        t.innerHTML = '숫자가 너무 큽니다';
        return;
    } else if(isNaN(s)){
        t.innerHTML = '숫자가 아닙니다';
        return;
    }
    b1 = ' 일이삼사오육칠팔구';
    b2 = '천백십조천백십억천백십만천백십원';
    tmp = '';
    cnt = 0;
    while(s != ''){
        cnt++;
        tmp1 = b1.substring(s.substring(s.length-1,s.length), Number(s.substring(s.length-1,s.length))+1); // 숫자
        tmp2 = b2.substring(b2.length-1,b2.length); // 단위
        if(tmp1==' '){ // 숫자가 0일때
            if(cnt%4 == 1){ // 4자리로 끊어 조,억,만,원 단위일때만 붙여줌
                tmp = tmp2 + tmp;
            }
        } else{
            if(tmp1 == '일' && cnt%4 != 1){ // 단위가 조,억,만,원일때만 숫자가 일을 붙여주고 나머지는 생략 ex) 삼백일십만=> 삼백십만
                tmp = tmp2 + tmp;
            } else{
                tmp = tmp1 + tmp2 + tmp; // 그외에는 단위와 숫자 모두 붙여줌
            }
        }
        b2 = b2.substring(0, b2.length-1);
        s = s.substring(0, s.length-1);
    }
    tmp = tmp.replace('억만','억').replace('조억','조'); // 조,억,만,원 단위는 모두 붙였기 때문에 필요없는 단위 제거
    t.innerHTML = tmp;
}
</script>

<input type='text' name='price' size='15' maxlength='16' onkeyup="trans_han(this.name,'trans_price');" /> <span id='trans_price'></span>
2009/07/16 19:49 2009/07/16 19:49

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다