프로그래밍/JavaScipt

javascript byte단위 자르기

p-a-r-k 2016. 3. 28. 13:31
반응형
/** 
* string String::cutByte(int len)
* 글자를 앞에서부터 원하는 바이트만큼 잘라 리턴합니다.
* 한글의 경우 2바이트로 계산하며, 글자 중간에서 잘리지 않습니다.
*/
String.prototype.cutByte = function(len) {
	var str = this;
	var count = 0;
	 
	for(var i = 0; i < str.length; i++) {
		if(escape(str.charAt(i)).length >= 4)
			count += 2;
		else
			if(escape(str.charAt(i)) != "%0D")
				count++;


		if(count >  len) {
			if(escape(str.charAt(i)) == "%0A")
				i--;
			break;		
		}
	}
	return str.substring(0, i);
}

/** 
* bool String::byte(void)
* 해당스트링의 바이트단위 길이를 리턴합니다. (기존의 length 속성은 2바이트 문자를 한글자로 간주합니다)
*/
String.prototype.byte = function() {
	var str = this;
        var length = 0; 
	for(var i = 0; i < str.length; i++)
	{
		if(escape(str.charAt(i)).length >= 4)
			length += 2;
		else if(escape(str.charAt(i)) == "%A7")
			length += 2;
		else
			if(escape(str.charAt(i)) != "%0D")
				length++;
	}
        return length; 
}

출처 : http://wyseburn.tistory.com/


반응형