본문 바로가기
study/javascript & library

글자 길이 계산, 자르기

by 휘루걸음 2015. 10. 24.
728x90
반응형
출처 : http://wyseburn.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%AC%B8%EC%9E%90%EC%97%B4-byte-%EB%8B%A8%EC%9C%84-%EC%9E%90%EB%A5%B4%EA%B8%B0-%EB%B0%8F-byte-%EA%B5%AC%ED%95%98%EA%B8%B0

/** 
* 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; 
}


728x90
반응형

'study > javascript & library' 카테고리의 다른 글

[chart/highchart] pie slice  (0) 2012.10.08
ajax 요청인지 판단  (0) 2012.09.27
encode,decode  (0) 2012.09.20
[chart/highChart] 투명 처리 혹은 지우기  (0) 2012.09.20
date_format(date,format)  (0) 2012.04.30