티스토리 뷰
var ch = escape(str.charAt(i));
if (ch.length == 1) bytes++;
else if (ch.indexOf("%u") != -1) bytes += 2;
else if (ch.indexOf("%") != -1) bytes += ch.length / 3;
부분이 핵심 부분입니다.
function getByteLength(str) {
var len = 0;
var max = str.length;
for (var i = 0; i < max; i++) {
var ch = escape(str.charAt(i));
if (ch.length == 1) len++;
else if (ch.indexOf("%u") != -1) len += 2;
else if (ch.indexOf("%") != -1) len += ch.length / 3;
}
return len;
}
function setCutStr(str, limit_len) {
var max = str.length;
var bytes = 0;
for (var i = 0; i < max; i++) {
var ch = escape(str.charAt(i));
if (ch.length == 1) bytes++;
else if (ch.indexOf("%u") != -1) bytes += 2;
else if (ch.indexOf("%") != -1) bytes += ch.length / 3;
if (bytes > limit_len) {
return str.substring(0, i);
}
}
return str;
}
jQuery('#textarea').on('keyup', function() {
var strlen = getByteLength(this.value);
if (strlen > 500) {
alert('500byte 까지 입력가능합니다.');
var result = setCutStr(this.value, 500);
jQuery('#textarea'').val(result);
strlen = getByteLength(result);
jQuery('#textLength').html(strlen);
} else {
var strlen = getByteLength(this.value);
jQuery('#textLength').html(strlen);
}
});
- Total
- Today
- Yesterday
- timestamp
- 메일제목
- nginx
- 한글깨짐
- php7
- php
- sphinx
- 10월의어느멋진날에
- 10월의 어느 멋진 날에 듣기
- 모바일 사파리
- 카카오톡
- MySQL
- Git
- CMYK
- 카카오스토리 API
- base64_encode
- innodb_buffer_pool_size
- 아이폰
- php-cgi
- 태그를 입력해 주세요.
- ie8
- 아이폰6 플러스
- 해금
- 백일상
- 소스유출
- Eclipse
- file compare
- 가로모드
- jpg
- 이미지 제한
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |