티스토리 뷰
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>
'Language > JavaScript' 카테고리의 다른 글
[ JavaScript ] 브라우저 높이와 넓이 구하기 ( self, innerHeight, innerWidth, documentElement, clientWidth, body, inner Width, clientHeight ) (0) | 2015.11.29 |
---|---|
[ JavaScript ] 비밀번호 영문+숫자 혼합 (0) | 2015.11.29 |
[ JavaScript ] FF 에서도 잘 돌아가는 웹사이트 만들기 (0) | 2015.11.29 |
[ JavaScript ] IE 와 FF 에서 사용되는 자바스크립트의 7가지 차이 (0) | 2015.11.29 |
[ JavaScript ] IE 와 FF 와의 자바스크립트 및 객체 접근 차이점 정리 (0) | 2015.11.29 |