프로그래밍
[JAVASCRIPT] 자바스크립트 바이트 체크
ReturnToHome
2016. 12. 24. 20:46
DB 저장 시 데이터 길이 체크는 필수이다.
자바스크립트에서 Validation 시 사용되는 바이트 체크 함수는 아래와 같다.
var str = 'Hello월드';
function getByteB(str) {
var byte = 0;
for (var i=0; i<str.length; ++i) {
// 기본 한글 2바이트 처리
(str.charCodeAt(i) > 127) ? byte += 2 : byte++ ;
}
return byte;
}
위의 결과는 9 byte 이다.
하지만 주의해야 할 점이 한가지 있다.
보통 한글 2바이트 그 외 영문, 숫자 1바이트라고 하지만
오라클 utf-8 타입의 설정일 경우 한글은 3바이트로 인식하게 된다.
그렇기 때문에 utf-8 타입의 VARCHAR2 필드에 입력을 위한 체크 시
(str.charCodeAt(i) > 127) ? byte += 2 : byte++ ;
부분을
(str.charCodeAt(i) > 127) ? byte += 3 : byte++ ;
이렇게 3 byte 씩 추가 되도록 변경할 필요가 있다.
그렇게 되면 위의 결과는 11 byte 가 된다.
이를 유념하자.