반응형

[JavaScript]원하는 바이트수만큼 문자열 잘라내기

JavaScript에서 원하는 길이만큼 문자열을 잘라내기 위해서는, 

substring함수를 사용하면 된다.

하지만, 문자열이 영어가 아닌 한글이나 다른 언어인 경우, 

문자열의 길이가 바이트수와 일치하지 않는다.

왜냐하면, 기본적으로 영어는 한글자당 1바이트를 사용하지만

한글은 2바이트를 사용하기 때문이다.

따라서, 원하는 바이트수만큼 문자열을 잘라내기 위해서는,

문자열의 바이트수를 구하는 함수를 응용하여 

다음과 같은 함수를 만들어 사용해야 한다.

 function cutByLen(str, maxByte) {

for(b=i=0;c=str.charCodeAt(i);) {

b+=c>>7?2:1;

if (b > maxByte)

break;

i++;

}

return str.substring(0,i);

}

위 함수는, 문자열 및 최대 허용 바이트수를 입력하면

허용 바이트수를 초과하는 문자열을 잘라내어 주는 함수이다.

예를 들어, 

alert(cutByLen('문자열 자르기 샘플', 10);

이라고 JavaScript코드를 작성하면, 

'문자열 자'

까지만 출력된다.

반응형

+ Recent posts