[html 소스]
<html>
<head>
<title>금액 출력</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
//금액에 , 찍기
function numchk(num) {
num = new String(num);
num = num.replace(/,/gi,"");
return numchk1(num);
}
function numchk1(num) {
var sign = "";
if(isNaN(num)) {
alert("숫자만 입력할 수 있습니다.");
return 0;
}
if(num == 0) {
return num;
}
if(num < 0) {
num = num * (-1);
sign="-";
} else {
num = num * 1;
}
num = new String(num)
var temp = "";
var pos = 3;
num_len = num.length;
while(num_len > 0) {
num_len = num_len - pos;
if(num_len < 0) {
pos = num_len + pos;
num_len = 0;
}
temp = "," + num.substr(num_len,pos) + temp;
}
return sign + temp.substr(1);
}
// 금액 숫자를 한글로
function num_han(num) {
if(num == "1") return "일";
else if(num == "2") return "이";
else if(num == "3") return "삼";
else if(num == "4") return "사";
else if(num == "5") return "오";
else if(num == "6") return "육";
else if(num == "7") return "칠";
else if(num == "8") return "팔";
else if(num == "9") return "구";
else if(num == "십") return "십";
else if(num == "백") return "백";
else if(num == "천") return "천";
else if(num == "만") return "만 ";
else if(num == "억") return "억 ";
else if(num == "조") return "조 ";
else if(num == "0") return "";
}
function NUM_HAN(num,mode, return_input) {
if(num == "" || num == "0") {
if(mode == "3") {
return_input.value = "";
}
return;
}
num = new String(num);
num = num.replace(/,/gi,"");
var len = num.length;
var temp1 = "";
var temp2 = "";
if(len/4 > 3 && len/4 <= 4) {
if(len%4 == 0) {
temp1 = ciphers_han(num.substring(0,4)) + "조" + ciphers_han(num.substring(4,8)) + "억" + ciphers_han(num.substring(8,12)) + "만" + ciphers_han(num.substring(12,16));
} else {
temp1 = ciphers_han(num.substring(0,len%4)) + "조" + ciphers_han(num.substring(len%4,len%4+4)) + "억" + ciphers_han(num.substring(len%4+4,len%4+8)) + "만" + ciphers_han(num.substring(len%4+8,len%4+12));
}
} else if(len/4 > 2 && len/4 <= 3) {
if ( len%4 == 0 ) {
temp1 = ciphers_han(num.substring(0,4)) + "억" + ciphers_han(num.substring(4,8)) + "만" + ciphers_han(num.substring(8,12));
} else {
temp1 = ciphers_han(num.substring(0,len%4)) + "억" + ciphers_han(num.substring(len%4,len%4+4)) + "만" + ciphers_han(num.substring(len%4+4,len%4+8));
}
} else if(len/4 > 1 && len/4 <= 2) {
if( len%4 == 0 ) {
temp1 = ciphers_han(num.substring(0,4)) + "만" + ciphers_han(num.substring(4,len));
} else {
temp1 = ciphers_han(num.substring(0,len%4)) + "만" + ciphers_han(num.substring(len%4,len));
}
} else if(len/4 <= 1) {
temp1 = ciphers_han(num.substring(0,len));
}
for(var i = 0; i<temp1.length; i++) {
temp2 = temp2 + num_han(temp1.substring(i, i + 1));
}
temp3 = new String(temp2);
temp3 = temp3.replace(/억 만/gi,"억 ");
temp3 = temp3.replace(/조 억/gi,"조 ");
if(mode == 1) {
alert(temp3 + " 원");
} else if(mode == 2) {
return temp3;
} else if(mode == 3) {
return_input.value = "( " + temp3 + " 원 )";
}
}
function ciphers_han(num) {
var len = num.length;
var temp = "";
if(len == 1) {
temp = num;
} else if(len == 2) {
temp = num.substring(0,1) + "십" + num.substring(1,2);
} else if(len == 3) {
temp = num.substring(0,1) + "백" + num.substring(1,2) + "십" + num.substring(2,3);
} else if(len == 4) {
temp = num.substring(0,1) + "천" + num.substring(1,2) + "백" + num.substring(2,3) + "십" + num.substring(3,4);
}
num = new String(temp);
num = num.replace(/0십/gi,"");
num = num.replace(/0백/gi,"");
num = num.replace(/0천/gi,"");
return num;
}
function moncom(mon) {
var factor = mon.length % 3;
var su = (mon.length - factor) / 3;
var com = mon.substring(0,factor);
for(var i=0; i < su ; i++) {
if((factor == 0) && (i == 0)) {
com += mon.substring(factor + (3 * i), factor + 3 + (3 * i));
} else {
com += "," ;
com += mon.substring(factor + (3 * i), factor + 3 + (3 * i));
}
}
document.write(com);
}
</script>
</head>
<body> 한글 금액
<form name=form action=# method=get>
<input type="text" name="A_EMONEY" size=18 maxLength=15 style="text-align:right" onkeypress="NUM_HAN(this.value, 3, document.form.EMONEY_HAN)" onkeyup="this.value=numchk(this.value);NUM_HAN(this.value, 3, document.form.EMONEY_HAN)"> 원
<input type="text" name="EMONEY_HAN" readonly style="border:0;" size="50">
</form>
</body>
</html>
[실행화면]
첨부파일 다운로드
'Web 프로그래밍 > Javascript & jQuery' 카테고리의 다른 글
[Javascript & jQuery] 공백 여부 & 특수 문자 여부 & 비밀번호 패턴 체크 (2) | 2017.06.08 |
---|---|
[Javascript & jQuery] 숫자데이터를 금액형식으로 표시 (콤마추가) + Null 체크 + 원하는 만큼 '0' 생성 (0) | 2017.06.08 |
[Javascript & jQuery] 업로드 할 파일의 확장자, 용량 체크 (0) | 2017.06.02 |
[Javascript & jQuery] 정규식을 이용한 데이터 체크 (1) | 2017.05.25 |
[Javascript & jQuery] 현재 페이지의 주소 얻기 & 모바일 웹에서 많이 사용되는 스크롤이 최하단에 위치시 발생하는 함수 (0) | 2017.01.02 |