Цель: Рассчитайте длину строки (1 символ на английском и 2 символах на китайском))
Метод 1:
Кода -копия выглядит следующим образом:
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;
} еще {
Len ++;
}
}
вернуть Лен;
}
Метод 2:
Кода кода следующая: function strlen (str) {
var len = 0;
for (var i = 0; i <str.length; i ++) {
var c = str.charcodeat (i);
// Одиночный байт плюс 1
if ((c> = 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
Len ++;
}
еще {
Len+= 2;
}
}
вернуть Лен;
}
Метод 3:
Кода кода выглядит следующим образом: var jmz = {};
jmz.getLength = function (str) {
/// <summary> Получите фактическую длину строки, китайский 2, английский 1 </summary>
/// <param name = "str">, чтобы получить строку длины </param>
var Reallength = 0, len = str.length, charcode = -1;
для (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) Reallength += 1;
else Reallength += 2;
}
вернуть реальную длину;
};
Метод 4:
Кода кода следующая: var l = str.length;
var blend = 0;
for (i = 0; i <l; i ++) {
if ((str.charcodeat (i) & 0xff00)! = 0) {
blen ++;
}
blen ++;
}
Метод 5:
Замените двойной байт двумя одиночными байтами, а затем получите длину
Скопируйте код следующим образом: getBlen = function (str) {
if (str == null) return 0;
if (typeof Str! = "String") {
str += "";
}
return str.replace (/[^/x00-/xff]/g, "01"). Length;
}