더 나은 프로그래머가 되자

글자 수 제한 (오버된 글자가 한 글자씩 삭제) 본문

언어/js

글자 수 제한 (오버된 글자가 한 글자씩 삭제)

greathuman 2010. 12. 20. 17:39


<script>
 // 글자 제한
 function calc_strlen(obj, limitCnt) {
    var text_byte = document.getElementById("text_byte2");

   var totalLen, cnt, strCheck, arrCheck, lenOfCheck, lenOfChar, cutLen;
      strCheck = obj.value;
      arrCheck = strCheck.split("");
      totalLen = strCheck.length;
      lenOfCheck = 0;
      cutCnt  = limitCnt;

      for(i=0;i<totalLen;i++) {
           lenOfChar = escape(arrCheck[i]);
           if (lenOfChar.length==6){
               lenOfCheck += 2;
               if(lenOfCheck > limitCnt) cutCnt -= 1;
               else     cutCnt  -= 2;
           }else{
               lenOfCheck += 1;
               cutCnt  -= 1;
           }
           if (lenOfCheck > limitCnt){
               alert("한글("+(limitCnt/2) +") 영어("+limitCnt+") 자 까지만 입력이 가능합니다.");
               obj.value = strCheck.substr( 0,totalLen + cutCnt);
               obj.focus();
       }
     text_byte.innerHTML = lenOfCheck;

 }
 }

</script>
 

<textarea style="width:430px; height:44px;" name="contents" rows="3" cols="24" tabindex="3" id="contents" onkeyUp="calc_strlen(this, 60);"></textarea>
<font color="#FF8409"><span id="text_byte2">0</span></font> byte / 60byte

Comments