숫자를 한글로 변경하려고 하는데요. 적용이 잘 안되서요..ㅜㅜ
<script>
<!--
function test_js() {
var gab = document.test.assa.value;
var qu = gab.length / 4;
var re = gab.length % 4;
var sutja = "";
var sutja_rd = "";
var sutja_jr = "";
var read = "";
for(i=0;i<gab.length;i++) {
sutja = gab.substring(i,i+1);
if(sutja == '1') sutja_rd = "일";
else if(sutja == '2') sutja_rd = "이";
else if(sutja == '3') sutja_rd = "삼";
else if(sutja == '4') sutja_rd = "사";
else if(sutja == '5') sutja_rd = "오";
else if(sutja == '6') sutja_rd = "육";
else if(sutja == '7') sutja_rd = "칠";
else if(sutja == '8') sutja_rd = "팔";
else if(sutja == '9') sutja_rd = "구";
else sutja_rd = "";
switch((gab.length - i -1) % 4 +1) {
case(2): sutja_jr = "십";break;
case(3): sutja_jr = "백";break;
case(4): sutja_jr = "천";break;
default: sutja_jr = "";
}
if(sutja_rd != "") read += sutja_rd + sutja_jr;
if((gab.length - i - 1) % 4 == 0) {
switch((gab.length - i - 1) / 4) {
case(1): read += "만";break;
case(2): read += "억";break;
case(3): read += "조";break;
default: break;
}
}
}
document.test.read.value = read;
}
-->
</script>
<form name=test>
입력 : <input type=text name="assa" onKeyUp="test_js()"><br>
결과 : <input type=text size=20 readonly name=read>
</form>
스크립트이고요
아래는
<input class="ed" style="width:40%;" name=wr_7 id="wr_7" itemname="기탁금" value="<?=$write[wr_7]?>">
에 적용하고 싶은데요..
또는 출력시 한글로 출력되게 하고싶은데요..
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 3개
이걸 원하신게 맞나 모르겠네요^^;;
백이십삼억 <==이렇게 표시되는 스크립트입니다
http://sir.co.kr/bbs/tb.php/pl_dhtml_javascript/470/de2f7a0c29e947283ee91d117060de93
agaweb님이 올려주신 이 스크립트를 약간 수정하여 제가 사용하는 소스입니다
일십=>십, 일백=>백, 일천=>천 으로 표기하는 것과 만 단위 띄우기, 컴마가 들어간 숫자도 가능 정도 변경된 것입니다
<script>
<!--
function number2Hangeul( strNumber )
{
strNumber = strNumber.replace(/,/g, "");
if(isNaN(strNumber) ) return;
var arrayAmt = new Array("일", "이", "삼", "사", "오", "육", "칠", "팔", "구", "십");
var arraypos = new Array("", "십", "백", "천");
var arrayUnit = new Array("", "만", "억", "조", "경", "해");
var pos = strNumber.length%4; //자리수
var len = (strNumber.length/4).toString();
if( len.indexOf(".") > 0 ) var unit = len.substring(0, len.indexOf(".")); //단위(0:일단위, 1:만단위...)
else var unit = strNumber.length/4-1;
var korNumber = "";
var op = 0;
for( i=0; i<strNumber.length; i++ )
{
if(pos==0) pos=4;
var num = parseInt( strNumber.substring( i, i+1 ) );
if( num != 0 )
{
korNumber += arrayAmt[ num-1 ];
korNumber += arraypos[ pos-1 ];
op=1;
}
if(pos==1)
{
if(op==1) korNumber += arrayUnit[unit];
unit--;
op = 0;
}
pos--;
}
korNumber=korNumber.replace(/일십/g,'십').replace(/일백/g,'백').replace(/일천/g,'천').replace(/조/,'조 ').replace(/억/,'억 ').replace(/만/,'만 ')
document.test.read.value = korNumber;
// if (korNumber.length==0 || korNumber.length==null ) return "";
// else return korNumber ;
}
//-->
</script>
<form name=test>
입력 : <input type=text name="assa" onKeyUp="number2Hangeul(this.value)"><br>
결과 : <input type=text size=50 readonly name=read>
</form>
적용하고 싶다는 말의 의도를 알수가 없지만 추측으로는
document.test.read.value= korNumber; 대신
document.getElementById('wr_7').value= korNumber; 이렇게 하고싶다는 것으로 이해됩니다만....
이렇게 입력하면 수정시 당연히 한글로 나옵니다
그런데 테이블에 저장시에는 숫자로저장하고 뷰페이지에서 보여줄때 한글로 변환하여 보여주는 것이
좋지않을까 생각됩니다(입력값을 수정할 경우가 있을 것이므로)
js 부분에
document.getElementById('read').value= korNumber; 로 걸고
출력시
<input class="ed" style="width:40%;" name=wr_7 id="wr_7" itemname="기탁금" value="<?=$write[wr_7]?>" onKeyUp="number2Hangeul(this.value)">
<input type=text size=30 readonly name=read >
로 하니 정상적으로 됩니다!! 감사합니다.ㅜㅜ
참고로 script 에 kornumber 에 korNumber=korNumber+'원'; 추가하면 좋겠습니다.