티스토리 뷰

function chkByte(name, msgMax) {
    var msgList = name.value;  // 글자가 입력되는 이벤트가 발생되는 value 값
    var msgListLength = msgList.length;  // 입력 되는 글자의 전체 길이
    
    var limitSize = msgMax;  // 제한 할 글자 길이
    var charOne = "";  // 한 글자씩 검사하기 위한 변수
    var charByte = 0;  // 입력 되고 있는 문자의 길이(바이트) 를 저장할 변수
    var msgLen = 0;  // 입력 내용을 담아 subString 할 변수
    var msgLast = "";  // 글자수가 초과 할 경우, 제한 할 마지막 글자 까지 보여준다
    
    for(var i = 0; i < msgListLength; i++) {  // 입력 되고 있는 글자의 전체길이를 루프를 돈다.
     charOne = msgList.charAt(i);  // 한글자씩 읽음
    
     // 한글은 2byte 이므로, 한글이 입력 되고 있을 경우 2를 더한다.
     if(escape(charOne).length > 4) {
      charByte += 2;
     } else {
      charByte++;  // 그 외에 경우에는 1byte. 1을 더한다.
     }
     
     if(charByte <= limitSize) {  // 전체 크기가 제한 글자 길이를 넘지 않는다면..
      msgLen = i + 1;
     }
    }
    
    if(charByte > limitSize) {
     alert(limitSize + " 글자를 초과 입력 할 수 없습니다.");
     msgLast = msgList.substr(0, msgLen);
     name.value = msgLast;
     charByte = limitSize;
    }
    
    document.getElementById("write").value = charByte;
   }.

.
.
.

body 부분.
.
.
.
< body>
  길이제한 Test<br><br>
  <textarea rows="20" cols="40" name="msg" -nkeyup="chkByte(this, 300)"></textarea><br>
  <input type="text" id="write" value="0" readOnly style="border: 0; text-align: right; height: 17px; width: 25px;" /> / 300byte
 </body> 

Total
Today
Yesterday
최근에 올라온 글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31