Zweck: Berechnen Sie die Länge der Zeichenfolge (1 Zeichen in Englisch und 2 Zeichen in Chinesisch)
Methode 1:
Die Codekopie lautet wie folgt:
String.prototype.gblen = function () {
var len = 0;
für (var i = 0; i <this.Length; i ++) {
if (this.charCodeat (i)> 127 || this.charCodeat (i) == 94) {
Len += 2;
} anders {
Len ++;
}
}
Rückkehr Len;
}
Methode 2:
Die Codekopie lautet wie folgt: Funktion Strlen (str) {
var len = 0;
für (var i = 0; i <str.length; i ++) {
var c = str.charcodeat (i);
// Single Byte plus 1
if ((c> = 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f) {
Len ++;
}
anders {
Len+= 2;
}
}
Rückkehr Len;
}
Methode 3:
Die Codekopie lautet wie folgt: var jmz = {};
jmz.getLength = function (str) {
/// <summary> Erhalten Sie die tatsächliche Länge der Zeichenfolge, Chinesisch 2, Englisch 1 </summary>
/// <param name = "str">, um eine Länge Zeichenfolge </param> abzurufen
var reallength = 0, len = str.length, CharCode = -1;
für (var i = 0; i <len; i ++) {
CharCode = Str.CharCodeat (i);
if (charCode> = 0 && charcode <= 128) reallength += 1;
sonst reallength += 2;
}
Rückkehrerlänge;
};
Methode 4:
Die Codekopie lautet wie folgt: var l = str.length;
var Blend = 0;
für (i = 0; i <l; i ++) {
if ((Str.CharCodeat (i) & 0xff00)! = 0) {
Blen ++;
}
Blen ++;
}
Methode 5:
Ersetzen Sie das Doppelbyte durch zwei einzelne Bytes und erhalten Sie dann die Länge
Kopieren Sie den Code wie folgt: getblen = function (str) {
if (str == null) return 0;
if (typeof str! = "String") {
str += "";
}
return Str.Replace (/[^/x00-/xff]/g, "01"). Länge;
}