Objectif: Calculez la longueur de la chaîne (1 caractère en anglais et 2 caractères en chinois)
Méthode 1:
La copie de code est la suivante:
String.prototype.gblen = function () {
var len = 0;
for (var i = 0; i <this.length; i ++) {
if (this.charcodeat (i)> 127 || this.charcodeat (i) == 94) {
len + = 2;
} autre {
len ++;
}
}
retour Len;
}
Méthode 2:
La copie de code est la suivante: fonction strlen (str) {
var len = 0;
pour (var i = 0; i <str.length; i ++) {
var c = str.charcodeat (i);
// octet simple plus 1
if ((c> = 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len ++;
}
autre {
len + = 2;
}
}
retour Len;
}
Méthode 3:
La copie de code est la suivante: var jmz = {};
jmz.getLength = fonction (str) {
/// <summary> Obtenez la longueur réelle de la chaîne, chinois 2, anglais 1 </summary>
/// <param name = "str"> pour obtenir une chaîne de longueur </ param>
var realLength = 0, len = str.length, charcode = -1;
pour (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) realLength + = 1;
else realLength + = 2;
}
return realLength;
};
Méthode 4:
La copie de code est la suivante: var l = str.length;
var mélange = 0;
pour (i = 0; i <l; i ++) {
if ((str.charcodeat (i) & 0xff00)! = 0) {
Blen ++;
}
Blen ++;
}
Méthode 5:
Remplacez le double octet par deux octets simples, puis obtenez la longueur
Copiez le code comme suit: getblen = fonction (str) {
if (str == null) return 0;
if (typeof str! = "String") {
str + = "";
}
return str.replace (/ [^ / x00- / xff] / g, "01"). Longueur;
}