// JavaScript Document
// 글자수 , 폼 객체 이름 , input type name 을 넣어주세요
//textlimit
//<span id="textlimit">0</span>/60 자 글자수를 찍어줍니다
function updateChar(length_limit, formObject,seq)
{
var comment='';
comment = eval("document."+formObject+"."+seq);
var form = eval("document."+formObject);
var length = calculate_msglen(comment.value);
textlimit.innerText = 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);
//alert("escape="+escape(ch.length)+"["+ch.length+"]");
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;
}
//글자수 Max까지다시 잘라내기
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;
}
textlimit.innerText = nbytes;
return msg;
}
'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글
※ HTML 태그표 총정리 (0) | 2009.01.29 |
---|---|
[JavaScript] 자바스크립트 :: 문자열 자르기 (0) | 2009.01.27 |
[PHP고급] PHP 파일 다루기 (3) | 2009.01.26 |
[PHP] 파일 함수 (0) | 2009.01.26 |
[PHP소스] 카운터 만들기 (파일입출력 이용) (0) | 2009.01.26 |