|
第一種:(通過(guò)String對(duì)象的charCodeAt方法)
復(fù)制代碼 代碼如下:
String.prototype.getBytesLength = function() {
var length = 0;
for(i = 0;i < this.length; i++) {
iCode = this.charCodeAt(i);
if((iCode >= 0 && iCode <= 255) || (iCode >= 0xff61 && iCode <= 0xff9f)) {
length += 1;
} else {
length += 2;
}
}
return length;
}
第二種:(通過(guò)escape()方法轉(zhuǎn)編碼后判斷)
復(fù)制代碼 代碼如下:
String.prototype.getBytesLength = function() {
var str = escape(this);
for(var i = 0, length = 0;i < str.length; i++, length++) {
if(str.charAt(i) == "%") {
if(str.charAt(++i) == "u") {
i += 3;
length++;
}
i++;
}
}
return length;
}
第三種寫法:徹底無(wú)語(yǔ)了!
復(fù)制代碼 代碼如下:
String.prototype.getBytesLength = function() {
return this.replace(/[^/x00-/xff]/gi, "--").length;
}
我喜歡第三種,以上代碼均測(cè)試通過(guò)
代碼簡(jiǎn)單,不給出測(cè)試結(jié)果
px
JavaScript技術(shù):Javascript 獲取字符串字節(jié)數(shù)的多種方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。