728x90

function updateChar(length_limit, seq)
{
 var comment='';
 comment = eval("document.form1.comment"+seq);
 var form = document.form1;
 var length = calculate_msglen(comment.value);
 document.getElementById("textlimit").innerHTML = length;
 if (length > length_limit) {
  alert("최대 " + length_limit + "byte이므로 초과된 글자수는 자동으로 삭제됩니다.");
  comment.value = comment.value.replace(/\r\n$/, "");
  comment.value = assert_msglen(comment.value, length_limit);
 }
}
function calculate_msglen(message)
{
 var nbytes = 0;

 for (i=0; i<message.length; i++) {
  var ch = message.charAt(i);
  if(escape(ch).length > 4) {
   nbytes += 2;
  } else if (ch == '\n') {
   if (message.charAt(i-1) != '\r') {
    nbytes += 1;
   }
  } else if (ch == '<' || ch == '>') {
   nbytes += 4;
  } else {
   nbytes += 1;
  }
 }

 return nbytes;
}
function assert_msglen(message, maximum)
{
 var inc = 0;
 var nbytes = 0;
 var msg = "";
 var msglen = message.length;

 for (i=0; i<msglen; i++) {
  var ch = message.charAt(i);
  if (escape(ch).length > 4) {
   inc = 2;
  } else if (ch == '\n') {
   if (message.charAt(i-1) != '\r') {
    inc = 1;
   }
  } else if (ch == '<' || ch == '>') {
   inc = 4;
  } else {
   inc = 1;
  }
  if ((nbytes + inc) > maximum) {
   break;
  }
  nbytes += inc;
  msg += ch;
 }
 document.getElementById("textlimit").innerHTML = nbytes;
 return msg;
}

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기