밑의 escape() 함수를 이용하여 1byte와 2byte를 갖는 글자를 구분.
문자의 80byte를 제한하는 자바스크립트 소스.
실행 화면
문자의 80byte를 제한하는 자바스크립트 소스.
<script type="text/javascript"> function smsByteChk(content) { var temp_str = content.value; var remain = document.getElementById("sms_remain"); remain.value = 80 - getByte(temp_str); //남은 바이트수를 표시 하기 if(remain.value < 0) { alert(80 + "Bytes를 초과할 수 없습니다."); while(remain.value < 0) { temp_str = temp_str.substring(0, temp_str.length-1); content.value = temp_str; remain.value = 80 - getByte(temp_str); } content.focus(); } } function getByte(str) { var resultSize = 0; if(str == null) { return 0; } for(var i=0; i<str.length; i++) { var c = escape(str.charAt(i)); if(c.length == 1)//기본 아스키코드 { resultSize ++; } else if(c.indexOf("%u") != -1)//한글 혹은 기타 { resultSize += 2; } else { resultSize ++; } } return resultSize; } </script> <form name="frm"> <table> <tr> <td> <input type="text" name="sms_remain" style="width:15px; border:2px dotted #00f" maxLength="2" value="80" readonly>Bytes 남음 </td> </tr> <tr> <td> <textarea name="smscontent" rows="8" cols="16" onkeyup="smsByteChk(this);" onkeydown="smsByteChk(this);"></textarea> </td> </tr> </table> </form>
실행 화면
'javascript > Example' 카테고리의 다른 글
[javascript] JavaScript Date Format (0) | 2013.07.10 |
---|---|
[javascript] (exam) 날짜 선택 제한 하기. (4) | 2011.10.07 |