>  기사  >  웹 프론트엔드  >  JavaScript_Basic 지식으로 구현된 GBK, UTF8 문자열 실제 길이 계산 기능

JavaScript_Basic 지식으로 구현된 GBK, UTF8 문자열 실제 길이 계산 기능

WBOY
WBOY원래의
2016-05-16 16:38:332042검색

우리 모두 알고 있듯이 JS의 문자열 길이는 중국어와 영어 문자를 구분하지 않습니다. 이는 PHP의 strlen() 함수와 다릅니다. PHP의 strlen() 함수는 문자 집합에 따라 GBK 한자를 2씩, UTF-8 한자를 3씩 누적합니다.

어떤 어린이 신발은 왜 실제 길이를 계산해야 합니까?라고 물을 수도 있습니다.

주로 데이터베이스의 길이 범위를 일치시키기 위해 예를 들어 GBK의 데이터베이스에 있는 필드는 varchar(10)이며 이는 한자 5자 길이에 해당하고 한자 1자는 문자 2자 길이와 같습니다. . UTF8 데이터베이스인 경우 각 한자의 길이는 3입니다.

위 원리를 알고 나면 문자열의 실제 길이를 계산할 수 있습니다. GBK 문자 집합인 경우 한자를 만나면 2를 추가하고, UTF8 문자 집합이면 한자를 만나면 3을 추가합니다. 🎜>
GBK 길이 계산 기능:

코드 복사 코드는 다음과 같습니다.
// GBK 문자 집합의 실제 길이 계산
함수 getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i ​​​​ charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode <= 128) {
실제 길이 = 1;
          }그 외{
                      // 중국어라면 길이에 2를 더하세요
               realLength = 2;
        }
}  
실제 길이를 반환합니다.
}


UTF8 길이 계산 기능:
코드 복사 코드는 다음과 같습니다.
// UTF8 문자 집합 실제 길이 계산
함수 getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i < len; i ){
​​​​ charCode = str.charCodeAt(i);
If (charCode >= 0 && charCode <= 128) {
                realLength = 1;
          }그 외{
                     // 중국어라면 길이에 3을 더하세요
               realLength = 3;
        }
}  
실제 길이를 반환합니다.
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.