Comme nous le savons tous, dans JS, la longueur d'une chaîne n'est pas divisée en caractères chinois et anglais, et chaque caractère est compté comme une longueur, qui est différente de la fonction strlen () en php. La fonction Strlen () dans PHP accumule 2 caractères chinois dans GBK selon le jeu de caractères et accumule 3 caractères chinois dans UTF-8.
Certaines chaussures pour enfants peuvent demander, pourquoi avez-vous besoin de calculer la longueur réelle?
Il s'agit principalement de correspondre à la plage de longueur de la base de données. Par exemple, un certain champ dans la base de données GBK est Varchar (10), ce qui équivaut à la longueur de 5 caractères chinois, et un caractère chinois est égal à la longueur de deux lettres. S'il s'agit d'une base de données UTF8, chaque caractère chinois a une longueur de 3.
Après avoir connu le principe ci-dessus, nous pouvons calculer la longueur réelle d'une chaîne. S'il s'agit d'un jeu de caractères GBK, ajoutez 2 en chinois, et s'il s'agit d'un jeu de caractères UTF8, ajoutez 3 en chinois.
Fonction de calcul de la longueur GBK:
La copie de code est la suivante:
// Calculez la longueur réelle du jeu de caractères GBK
fonction gettrleng (str) {
var realLength = 0;
var len = str.length;
var charcode = -1;
pour (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
realLength + = 1;
}autre{
// s'il est chinois, ajoutez 2 longueurs
realLength + = 2;
}
}
return realLength;
}
Fonction de calcul de la longueur UTF8:
La copie de code est la suivante:
// Calculez la longueur réelle du jeu de caractères UTF8
fonction gettrleng (str) {
var realLength = 0;
var len = str.length;
var charcode = -1;
pour (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) {
realLength + = 1;
}autre{
// s'il est chinois, ajoutez 3 longueurs
realLength + = 3;
}
}
return realLength;
}