반응형
문자열의 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이라는 계산 결과가 나왔습니다.
반응형
'프로그래밍 & IT 정보 > Javascript' 카테고리의 다른 글
자바스크립트 Promise 예제를 통해 쉽게 이해하기 (6) | 2020.12.04 |
---|---|
자바스크립트 콜백 함수 예제를 통해 개념 및 원리 쉽게 이해하기 (12) | 2020.12.01 |
자바스크립트 Base64 이미지 코드 파일로 쓰기 (0) | 2020.09.24 |
자바스크립트 이미지 크기 조정 및 보정 로직 (0) | 2020.09.24 |
자바스크립트 아스키 코드 정렬 (0) | 2020.09.24 |
로컬스토리지에서 배열로 저장하는 방법 (0) | 2020.07.03 |
자바스크립트 URL 및 E-Mail 링크 자동 생성 (0) | 2020.07.03 |
자바스크립트 JSON 오브젝트 복사 (0) | 2020.07.02 |
댓글