Objetivo: Calcule o comprimento da corda (1 caractere em inglês e 2 caracteres em chinês)
Método 1:
A cópia do código é a seguinte:
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;
} outro {
Len ++;
}
}
retornar Len;
}
Método 2:
A cópia do código é a seguinte: função strlen (str) {
var len = 0;
for (var i = 0; i <str.Length; i ++) {
var c = str.charcodeat (i);
// byte único mais 1
if ((c> = 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
Len ++;
}
outro {
len+= 2;
}
}
retornar Len;
}
Método 3:
A cópia do código é a seguinte: var jmz = {};
jmz.getLength = function (str) {
/// <summary> Obtenha o comprimento real da corda, chinês 2, inglês 1 </summary>
/// <param name = "str"> para obter uma sequência de comprimento </am Param>
var realLength = 0, len = str.Length, charcode = -1;
for (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) realLength += 1;
else realLength += 2;
}
retornar real comprimento;
};
Método 4:
A cópia do código é a seguinte: var L = str.length;
var mistura = 0;
para (i = 0; i <l; i ++) {
if ((str.charcodeat (i) e 0xff00)! = 0) {
Blen ++;
}
Blen ++;
}
Método 5:
Substitua o byte duplo por dois bytes únicos e depois obtenha o comprimento
Copie o código da seguinte forma: getblen = function (str) {
if (str == null) retornar 0;
if (typeof str! = "string") {
str += "";
}
Retorne str.place (/[^/x00-/xff]/g, "01"). Comprimento;
}