자바스크립트에서 스트링 길이를 구할 때, 한글 길이와 영문길이를 같이 계산하는 경우가 대부분이다.
하지만, 한글의 경우 2byte로 계산해야 정상적인 계산이라고 볼 수 있는데,
구글링 중 어느 블로그를 통해 계산법에 대해 알게 되었다.
현재 string의 byte 수를 구하는 function 이다.
String.prototype.getBytes = function() { var contents = this; var str_character; var int_char_count; var int_contents_length; int_char_count = 0; int_contents_length = contents.length; for (k = 0; k < int_contents_length; k++) { str_character = contents.charAt(k); if (escape(str_character).length > 4) int_char_count += 2; else int_char_count++; } return int_char_count; }
그리고 조금더 응용해서
입력된 숫자 만큼의 길이의 스트링을 리턴해준다.
String.prototype.getStringFromByteLength = function( byteLength ) { var contents = this; var str_character; var int_char_count; var int_contents_length; var returnValue = ""; int_char_count = 0; int_contents_length = contents.length; for (k = 0; k < int_contents_length; k++) { str_character = contents.charAt(k); if (escape(str_character).length > 4) int_char_count += 2; else int_char_count++; if ( int_char_count > byteLength ) { break; } returnValue += str_character; } return returnValue; }
위의 function은 출처가 어딘지 모르겠네요...
혹시 직접 만드신분이 보신다면...댓글 부탁드려요~
'Programming > Web' 카테고리의 다른 글
자바스크립트 난독화(패킹, 언패킹) (0) | 2014.10.14 |
---|---|
[Javascript] Iframe document 얻기. (0) | 2014.08.13 |
[Javascript] 자바스크립트에서 replaceAll 하기. (0) | 2014.08.08 |
[Javacript] Array remove Index 배열 삭제 (0) | 2014.08.08 |
[Javascript] Date format 추가. (0) | 2014.08.08 |