본문 바로가기
JAVASCRIPT/자바 스크립트 Byte 체크

자바스크립트 byte 수 제한 (입력 시점에)

by 정윤재 2009. 10. 21.

34글자 제한 입니다. 천천히 보시면 금방 아실 수 있습니다.


function byteCheck(msg){
 
  var text = msg;
  var msglen=0;
 
  msglen = reCount(text);
         
  if(msglen > 34){
   rem = msglen - 34;
      alert('입력하신 문장의 총길이는 ' + msglen + '입니다.\n초과되는 ' + rem + '바이트는 삭제됩니다.');
         msg = cutMsg(text);              
   
  }else{
    
  }
 return msg;
 }
 
function cutMsg(str){
     var ret='';
   var i;
   var msglen=0;

   for(i=0;i<str.length;i++){
         var ch=str.charAt(i);

      if(escape(ch).length >4){
      msglen += 2;
      }else{
      msglen++;
      }
            if(msglen > 34) break;
      ret += ch;
   }
   return ret;
}

function reCount(str){
  var i;
  var msglen=0;
 
  for(i=0;i<str.length;i++){
      var ch=str.charAt(i);
 
   if(escape(ch).length >4){
       msglen += 2;
   }else{
    msglen++;
   }
   }
      return msglen;
}


function limitPushString(){
 
 var f = document.form;
 var PUSH_STRING = f.PUSH_STRING.value;
 
 f.PUSH_STRING.value=byteCheck(PUSH_STRING,34);

}

//html 코드

<input type="text" name="PUSH_STRING" size="70" maxlength="34" disabled onKeyUp="limitPushString();" onkeydown="limitPushString();">


댓글