자바스크립트로 정확한 바이트 수 체크하기
페이지 정보
작성자 서방님 댓글 0건 조회 210회 작성일 07-08-08 10:53본문
우린 보통 태그에서 MaxLength로 DB에 들어갈 값들을 제어하기도 합니다.
그러나 MaxLength이녀석으론 정확한 byte 수를 알아내기 어렵습니다.
왜냐하면 한글, 영문, 특수문자 전부 길이 1로 체크하기 때문에 한글은 300자를 넣으면 벌써 바이트수가 600이기 때문입니다.
[참고]
MS-SQL200 : 영문,숫자,특수문자 => 1 바이트 한글 => 2 바이트
오라클 : 영문,숫자,특수문자 => 1 바이트 한글 => 2 바이트
그래서 정확히 바이트를 체크할려면 아래와 같은 스크립트를 이용하는 것이 좋습니다.
function checkAndSubmit() <- 실행시 Submit 체크스크립트.
{
if( !checkLength( name )) return;
}
function checkLength( name)
{
var doc_form = eval(document.<%= szFormName %>);
// 제목.
var szName = doc_form.<%= KMPosting.getPropertyID( KMPosting.PID_NAME) %>.value;
if ( calculateBytes( szName) >= 255)
{
alert( "제목은 255자 이하로 입력해주세요.");
setFocus( '<%= szFormName%>', '<%= KMPosting.getPropertyID( KMPosting.PID_NAME)%>' );
return;
}
return true;
}
function calculateBytes( szValue)
{
var tcount = 0;
var tmpStr = new String(szValue);
var temp = tmpStr.length;
var onechar;
for ( k=0; k<temp; k++ )
{
onechar = tmpStr.charAt(k);
if (escape(onechar).length > 4)
{
tcount += 2;
}
else
{
tcount += 1;
}
}
return tcount;
}
댓글목록
등록된 댓글이 없습니다.