숫자를 한글로 변경하려고 하는데요. 적용이 잘 안되서요..ㅜㅜ 정보
숫자를 한글로 변경하려고 하는데요. 적용이 잘 안되서요..ㅜㅜ본문
<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]?>">
에 적용하고 싶은데요..
또는 출력시 한글로 출력되게 하고싶은데요..
댓글 전체
<script>~</script> 사이에 있는 read 를 모두 wr_7 으로 바꿔보세용~
이걸 원하신게 맞나 모르겠네요^^;;
이걸 원하신게 맞나 모르겠네요^^;;
12300000000=>일백이십삼억만 이렇게 표시가 되네요
백이십삼억 <==이렇게 표시되는 스크립트입니다
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; 이렇게 하고싶다는 것으로 이해됩니다만....
이렇게 입력하면 수정시 당연히 한글로 나옵니다
그런데 테이블에 저장시에는 숫자로저장하고 뷰페이지에서 보여줄때 한글로 변환하여 보여주는 것이
좋지않을까 생각됩니다(입력값을 수정할 경우가 있을 것이므로)
백이십삼억 <==이렇게 표시되는 스크립트입니다
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+'원'; 추가하면 좋겠습니다.
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+'원'; 추가하면 좋겠습니다.