우리 모두 알고 있듯이 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;
}
}
실제 길이를 반환합니다.
}