프로그래밍

[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 가 된다.




이를 유념하자.