* 용도
1. Textarea 박스나 텍스트형 Input 박스에서 지정 문자열을 제한할 경우
2. 문자열이 입력될 경우 바이트 수를 계산한다..

Syntax Highlighter가 잘 안되네요. For 문을 집어 넣으니 for문쪽에 라인이 이상해져서 안되겠습니다.










//TextArea의 최대 입력값이 넘었을 때 글자수를 자른다.
function fnCheckStrLength(sourceID,countID,cnt) { //변수의 초기화 var obj = document.getElementById(sourceID); var now_str = obj.value; //이벤트가 발생한 컨트롤의 value값 var now_len = obj.value.length; //현재 value값의 글자 수 var dest = document.getElementById(countID); //입력된 글자수를 넣어줄 id var max_len = cnt; //제한할 최대 글자 수 var i = 0; //for문에서 사용할 변수 var cnt_byte = 0; //한글일 경우 2 그외에는 1바이트 수 저장 var sub_cnt = 0; //substring 할때 사용할 제한 길이를 저장 var chk_letter = ""; //현재 한/영 체크할 letter를 저장 var lmt_str = ""; //제한된 글자 수만큼만 저장 for (i=0; i<now_len; i++) { //1글자만 추출 chk_letter = now_str.charAt(i); // 체크문자가 한글일 경우 2byte 그 외의 경우 1byte 증가 if (escape(chk_letter).length > 4) { //한글인 경우 2byte cnt_byte += 2; }else{ //그외의 경우 1byte 증가 cnt_byte++; } //만약 전체 크기가 제한 글자 수를 넘지 않으면 if (cnt_byte <= max_len) { // 제한할 문자까지의 count값을 sub_cnt에 누적 sub_cnt = i + 1; } } // 만약 전체 크기가 제한 글자 수를 넘으면 if (cnt_byte > max_len) { alert("최대" + max_len + "글자 이상 쓸수 없습니다!"); lmt_str = now_str.substring(0, sub_cnt); obj.value = lmt_str; dest.innerText = max_len; } else { dest.innerText = cnt_byte; } obj.focus(); }
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기