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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1