JS에서 문자의 바이트량, 한글 글자 자르기

<script>
        /**
        * string String::cut(int len)
        * 글자를 앞에서부터 원하는 바이트만큼 잘라 리턴합니다.
        * 한글의 경우 2바이트로 계산하며, 글자 중간에서 잘리지 않습니다.
        */
        String.prototype.cut = function(len) {
                var str = this;
                var l = 0;
                for (var i=0; i<str.length; i++) {
                        l += (str.charCodeAt(i) > 128) ? 2 : 1;
                        if (l > len) return str.substring(0,i) + "...";
                }
                return str;
        }
        /**
        * bool String::bytes(void)
        * 해당스트링의 바이트단위 길이를 리턴합니다. (기존의 length 속성은 2바이트 문자를 한글자로 간주합니다)
        */
        String.prototype.bytes = function() {
                var str = this;
                var l = 0;
                for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
                return l;
        }
        aaa = "동a해b물c과 백두산이";
        alert(aaa.cut(15));
        // 또는
        bbb = "너무긴내용너무긴내용너무긴내용";
    alert("length: " + bbb.length + "nbytes(): " + bbb.bytes());
    //응용
        if (bbb.bytes() > 20) {
                alert("내용이 너무 깁니다");
        } else {
                // 처리
        }
       
</script>
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins
mins