Javascript 獲取字符串字節(jié)數(shù)的多種方法
更新時(shí)間:2009年06月02日 18:01:08 作者:
Javascript 字符串字節(jié)數(shù)獲取功能多種方法
方法有很多,舉兩種:
第一種:(通過(guò)String對(duì)象的charCodeAt方法)
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)編碼后判斷)
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ǔ)了!
String.prototype.getBytesLength = function() {
return this.replace(/[^\x00-\xff]/gi, "--").length;
}
我喜歡第三種,以上代碼均測(cè)試通過(guò)
代碼簡(jiǎn)單,不給出測(cè)試結(jié)果
px
第一種:(通過(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
相關(guān)文章
深入解析ECMAScript?2023?中的新數(shù)組方法
ECMAScript?是一種標(biāo)準(zhǔn)化的腳本語(yǔ)言,它是?JavaScript?的規(guī)范。ECMAScript?2023?是?JavaScript?編程語(yǔ)言的更新,旨在帶來(lái)改進(jìn)并使?JavaScript?程序可預(yù)測(cè)和可維護(hù),這篇文章主要介紹了探索?ECMAScript?2023?中的新數(shù)組方法,需要的朋友可以參考下2023-12-12js校驗(yàn)開(kāi)始時(shí)間和結(jié)束時(shí)間
這篇文章主要為大家詳細(xì)介紹了js校驗(yàn)開(kāi)始結(jié)束時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05利用HTML5的畫布Canvas實(shí)現(xiàn)刮刮卡效果
大家都玩過(guò)刮刮樂(lè)吧,都想一夜暴富,本文給大家分享一款利用HTML5的畫布Canvas實(shí)現(xiàn)刮刮卡效果,需要的朋友可以參考下2015-09-09手動(dòng)實(shí)現(xiàn)js短信驗(yàn)證碼輸入框
本文記錄一下自己手動(dòng)實(shí)現(xiàn)的一個(gè)前端常見(jiàn)的短信驗(yàn)證碼輸入組件,從需求到實(shí)現(xiàn)逐步優(yōu)化的過(guò)程。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06JavaScript實(shí)現(xiàn)控制并發(fā)請(qǐng)求數(shù)量的方法詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript如何實(shí)現(xiàn)控制并發(fā)請(qǐng)求數(shù)量,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02關(guān)于Google發(fā)布的JavaScript代碼規(guī)范你要知道哪些
代碼規(guī)范并不是一種編寫正確JavaScript代碼的規(guī)則,而是為了保持源代碼編寫模式一致的一種選擇。這篇文章給大家介紹了關(guān)于Google發(fā)布的JavaScript代碼規(guī)范你要知道哪些,感興趣的朋友一起看看吧2018-04-04