본문 바로가기

개발/javascript Tip

숫자에 컴마(,) 쓰고 한글로 숫자 표시

숫자에 컴마(,) 쓰고 한글로 숫자 표시

01 <html>
02 <head>
03 <script language="javascript">
04 function won_format(chknum,hanview) {
05         val = chknum.value;
06         re = /^[1-9][0-9]*$/;
07         var num = val.toString().split(',').join('');
08         if (!re.test(num)) {
09             chknum.value = '';
10             if (hanview) document.getElementById(hanview).innerHTML = '';
11         } else {
12             //num = num.split(',').join('');
13             var arr = num.split('.');
14             var num = new Array();
15             for (i = 0; i <= arr[0].length-1; i++) {
16                 num[i] = arr[0].substr(arr[0].length-1-i,1);
17                 if(i%3 == 0 && i != 0) num[i] += ',';
18             }
19             num = num.reverse().join('');
20             if (!arr[1]) chknum.value = num; else chknum.value = num+'.'+arr[1];
21             if (hanview) num2won(chknum,hanview);
22         }
23 }
24 function num2won(chknum,hanview) {
25         val = chknum.value;
26         var won = new Array();
27         re = /^[1-9][0-9]*$/;
28         var num = val.toString().split(',').join('');
29         if (!re.test(num)) {
30                 chknum.value = '';
31                 document.getElementById(hanview).innerHTML = '';
32         } else {
33                 var price_unit0 = new Array('','일','이','삼','사','오','육','칠','팔','구');
34                 var price_unit1 = new Array('','십','백','천');
35                 var price_unit2 = new Array('','만','억','조','경','해','시','양','구','간','정');
36                 for(i = num.length-1; i >= 0; i--) {
37                         won[i] = price_unit0[num.substr(num.length-1-i,1)];
38                         if(i > 0 && won[i] != '') won[i] += price_unit1[i%4];
39                         if(i % 4 == 0) won[i] += price_unit2[(i/4)];
40                 }
41                 for(i = num.length-1; i >= 0; i--) {
42                         if(won[i].length == 2) won[i-i%4] += '-';
43                         if(won[i].length == 1 && i > 0) won[i] = '';
44                         if(i%4 != 0) won[i] = won[i].replace('일','');
45                 }
46                 won = won.reverse().join('').replace(/-+/g,'');
47                 document.getElementById(hanview).innerHTML = won;
48         }
49 }
50 </script>
51 </head>
52 <body>
53 <input type="text" name="won" style="text-align:right;" onkeyup="won_format(this,'hanview');"> 원 입력 <span id="hanview" style='background-color:#EEEEEE'></span> 원
54 </body>
55 </html>


컴마만 붙이고 한글은 표시하지 않을 경우 won_format(this,''); 와 같이 쓰면 됩니다.