프로그래밍 & IT 정보/Javascript

자바스크립트 텍스트 길이(바이트) 구하기

아미넴 2020. 9. 24.
반응형

문자열의 length 속성은 단순히 숫자, 영문, 한글 모두 1글자씩이라고 판단을 하지만

경우에 따라서 한글을 2자로 인식을 해야 하는 경우가 있습니다.

예를 들어 바이트 계산을 할 때 영문, 숫자, 일반적인 특수 기호들을 1바이트, 한글은 2바이트가 되죠.

 

단순한 방식으로 함수를 구현해 보겠습니다.

function getTextLength(str) {
    var chk = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789\~!@#$%^&*()_+| ";
    var length = 0;

    if (str != null) {
        for (var i = 0; i < str.length; i++) {
            if (chk.indexOf(str.charAt(i)) >= 0) {
                length++;
            }
            else {
                length += 2;
            }
        }
        return length;
    }
    else {
        return 0;
    }
}

chk 변수를 선언하여 영문, 숫자, 일반적인 특수기호들 모두 나열하고

길이를 구할 문자열이 그 안에 포함되면 길이를 1로 계산하고 그 외에는 모두 2로 계산하는 방법입니다.

 

 

작성한 함수를 이용하여 예제를 실행해 보면

(function(){
    var test = "Hello! 안녕하세요!";
    console.log(getTextLength(test3));
})();

// 출력 결과: 18

영문 길이 5, 특수문자 길이 2, 공백 1, 한글 5*2 총 18이라는 계산 결과가 나왔습니다.

반응형

댓글

💲 추천 글