ご存知のとおり、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
realLength = 1;
}その他{
// 中国語の場合は長さに 2 を加えます
realLength = 2;
}
}
realLength を返します;
}
UTF8の長さ計算関数:
// UTF8 文字セットの実際の長さの計算
関数 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
realLength = 1;
}その他{
// 中国語の場合は、長さに 3 を加えます
realLength = 3;
}
}
realLength を返します;
}