Javascript 문자열 바이트수 가져오기(byteLength)


문자열의 바이트 수를 리턴해 주는 함수를 String 의 prototype 으로 추가하면 간편하게 쓸 수 있다.
/**
 * 문자열의 바이트수 리턴
 * @returns {Number}
 */
String.prototype.byteLength = function() {
	var l= 0;
	
	for(var idx=0; idx < this.length; idx++) {
		var c = escape(this.charAt(idx));
		
		if( c.length==1 ) l ++;
		else if( c.indexOf("%u")!=-1 ) l += 2;
		else if( c.indexOf("%")!=-1 ) l += c.length/3;
	}
	
	return l;
};

"abc".byteLength();        // 3
"가나다".byteLength();      // 6
"가나다abc".byteLength();   // 9