Como todos sabemos, en JS, la longitud de una cadena no se divide en caracteres chinos e ingleses, y cada personaje se cuenta como una longitud, que es diferente de la función strlen () en PHP. La función strlen () en PHP acumula 2 caracteres chinos en GBK de acuerdo con el conjunto de caracteres, y acumula 3 caracteres chinos en UTF-8.
Los zapatos de algunos niños pueden preguntar, ¿por qué necesita calcular la longitud real?
Es principalmente para que coincida con el rango de longitud de la base de datos. Por ejemplo, un cierto campo en la base de datos GBK es Varchar (10), que es equivalente a la longitud de 5 caracteres chinos, y un personaje chino es igual a la longitud de dos letras. Si se trata de una base de datos UTF8, cada carácter chino tiene una longitud de 3.
Después de conocer el principio anterior, podemos calcular la longitud real de una cadena. Si es un conjunto de caracteres GBK, agregue 2 en chino, y si es un conjunto de caracteres UTF8, agregue 3 en chino.
Función de cálculo de longitud de GBK:
La copia del código es la siguiente:
// Calcule la longitud real del conjunto de caracteres GBK
función getTrleng (str) {
var reaslength = 0;
var len = str.length;
var charcode = -1;
para (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
RealLength += 1;
}demás{
// Si es chino, agregue 2 longitud
RealLength += 2;
}
}
return RealLength;
}
Función de cálculo de longitud UTF8:
La copia del código es la siguiente:
// Calcule la longitud real del conjunto de caracteres UTF8
función getTrleng (str) {
var reaslength = 0;
var len = str.length;
var charcode = -1;
para (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
RealLength += 1;
}demás{
// Si es chino, agregue 3 longitud
RealLength += 3;
}
}
return RealLength;
}