본문 바로가기
Programming Language/Javascript

글자 byte 계산 및 자르기

by 뒹굴거리는프로도 2018. 12. 19.
반응형


cnslt.js ( 스크립트 )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var calByte = {
        getByteLength : function(s) {
 
            if (s == null || s.length == 0) {
                return 0;
            }
            var size = 0;
 
            for ( var i = 0; i < s.length; i++) {
                size += this.charByteSize(s.charAt(i));
            }
 
            return size;
        },
 
        cutByteLength : function(s, len) {
 
            if (s == null || s.length == 0) {
                return 0;
            }
            var size = 0;
            var rIndex = s.length;
 
            for ( var i = 0; i < s.length; i++) {
                size += this.charByteSize(s.charAt(i));
                if( size == len ) {
                    rIndex = i + 1;
                    break;
                } else if( size > len ) {
                    rIndex = i;
                    break;
                }
            }
 
            return s.substring(0, rIndex);
        },
 
        charByteSize : function(ch) {
 
            if (ch == null || ch.length == 0) {
                return 0;
            }
 
            var charCode = ch.charCodeAt(0);
 
            if (charCode <= 0x00007F) {
                return 1;
            } else if (charCode <= 0x0007FF) {
                return 2;
            } else if (charCode <= 0x00FFFF) {
                return 3;
            } else {
                return 4;
            }
        }
    };
 
window.viewDisplay = function(obj){
    $(".viewByte").html( calByte.getByteLength( obj.value ) );
    $(".view20Byte").val( calByte.cutByteLength( obj.value, 1300 ) );
}
 
cs


1
$("[id^='sptVisitDmgeReqstdocSumry']").trigger('keyup');

cs


divSptVisit.jsp ( 뷰 )


1
2
3
<label class="hori100" style="vertical-align:middle">신청인<br />접수내용<span class="emph">*</span><br />요약</label>
<textarea name="dmgeReqstdocSumry" id="dmgeReqstdocSumry"  class="view20Byte" rows="6" cols="180" style="width: 80%; overflow-x:hidden;" title="신청인 접수내용" onkeyup="viewDisplay(this)"></textarea>
<div class="byteDiv"><span class="viewByte red"></span> byte입니다.(※ 1300 byte이하로 요약해 주세요.)</div>
cs








층간소음 이웃사이서비스 상담관리 화면



반응형