利用JS如何計(jì)算字符串所占字節(jié)數(shù)示例代碼
前言
在工作中是不是經(jīng)常會(huì)遇到字符串,但是要求控制字節(jié)數(shù)的需求?因?yàn)楹芏鄷r(shí)候數(shù)據(jù)庫中對(duì)字節(jié)數(shù)有控制,所以在前端過程中就需要判斷一下,今天我們來分享一下。
本文主要給大家介紹了關(guān)于JS計(jì)算字符串所占字節(jié)數(shù)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
示例代碼
/**
* 計(jì)算字符串所占的內(nèi)存字節(jié)數(shù),默認(rèn)使用UTF-8的編碼方式計(jì)算,也可制定為UTF-16
* UTF-8 是一種可變長度的 Unicode 編碼格式,使用一至四個(gè)字節(jié)為每個(gè)字符編碼
*
* 000000 - 00007F(128個(gè)代碼) 0zzzzzzz(00-7F) 一個(gè)字節(jié)
* 000080 - 0007FF(1920個(gè)代碼) 110yyyyy(C0-DF) 10zzzzzz(80-BF) 兩個(gè)字節(jié)
* 000800 - 00D7FF
00E000 - 00FFFF(61440個(gè)代碼) 1110xxxx(E0-EF) 10yyyyyy 10zzzzzz 三個(gè)字節(jié)
* 010000 - 10FFFF(1048576個(gè)代碼) 11110www(F0-F7) 10xxxxxx 10yyyyyy 10zzzzzz 四個(gè)字節(jié)
*
* 注: Unicode在范圍 D800-DFFF 中不存在任何字符
* {@link http://zh.wikipedia.org/wiki/UTF-8}
*
* UTF-16 大部分使用兩個(gè)字節(jié)編碼,編碼超出 65535 的使用四個(gè)字節(jié)
* 000000 - 00FFFF 兩個(gè)字節(jié)
* 010000 - 10FFFF 四個(gè)字節(jié)
*
* {@link http://zh.wikipedia.org/wiki/UTF-16}
* @param {String} str
* @param {String} charset utf-8, utf-16
* @return {Number}
*/
var sizeof = function(str, charset){
var total = 0,
charCode,
i,
len;
charset = charset ? charset.toLowerCase() : '';
if(charset === 'utf-16' || charset === 'utf16'){
for(i = 0, len = str.length; i < len; i++){
charCode = str.charCodeAt(i);
if(charCode <= 0xffff){
total += 2;
}else{
total += 4;
}
}
}else{
for(i = 0, len = str.length; i < len; i++){
charCode = str.charCodeAt(i);
if(charCode <= 0x007f) {
total += 1;
}else if(charCode <= 0x07ff){
total += 2;
}else if(charCode <= 0xffff){
total += 3;
}else{
total += 4;
}
}
}
return total;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- JS計(jì)算距當(dāng)前時(shí)間的時(shí)間差實(shí)例
- AngularJS實(shí)現(xiàn)的根據(jù)數(shù)量與單價(jià)計(jì)算總價(jià)功能示例
- JavaScript實(shí)現(xiàn)的超簡單計(jì)算器功能示例
- JS基于遞歸實(shí)現(xiàn)網(wǎng)頁版計(jì)算器的方法分析
- JavaScript重復(fù)元素處理方法分析【統(tǒng)計(jì)個(gè)數(shù)、計(jì)算、去重復(fù)等】
- Java調(diào)用JavaScript實(shí)現(xiàn)字符串計(jì)算器代碼示例
- js實(shí)現(xiàn)rem自動(dòng)匹配計(jì)算font-size的示例
- javascript計(jì)算對(duì)象長度的方法
- JS實(shí)現(xiàn)的簡單四則運(yùn)算計(jì)算器功能示例
- javascript計(jì)算漸變顏色的實(shí)例
- JS處理一些簡單計(jì)算題
相關(guān)文章
JS數(shù)組求和的常用方法實(shí)例小結(jié)
這篇文章主要介紹了JS數(shù)組求和的常用方法,結(jié)合實(shí)例形式總結(jié)分析了javascript常見的遍歷、循環(huán)、歸并等數(shù)組操作相關(guān)技巧,需要的朋友可以參考下2019-01-01
JAVASCRIPT 客戶端驗(yàn)證數(shù)據(jù)的合法性代碼(正則)
JAVASCRIPT 客戶端驗(yàn)證數(shù)據(jù)的合法性代碼,比較全了,所以簡單分頁了下,喜歡的朋友可以收藏下。2010-04-04
Javascript 判斷兩個(gè)IP是否在同一網(wǎng)段實(shí)例代碼
javascript功能的強(qiáng)大之處是我們大家有目共睹的,幾天小編向大家介紹Javascript 判斷兩個(gè)IP是否在同一網(wǎng)段,感興趣的朋友可以參考一下2016-11-11
JavaScript事件學(xué)習(xí)小結(jié)(五)js中事件類型之鼠標(biāo)事件
這篇文章主要介紹了JavaScript事件學(xué)習(xí)小結(jié)(五)js中事件類型之鼠標(biāo)事件的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
js關(guān)閉瀏覽器窗口及檢查瀏覽器關(guān)閉事件
js關(guān)閉瀏覽器窗口,不彈出提示框。支持ie6+,火狐,谷歌等瀏覽器,下面以一個(gè)示例為大家詳細(xì)介紹下具體的實(shí)現(xiàn)方法,感興趣的朋友可以參考下2013-09-09
簡單實(shí)現(xiàn)bootstrap導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了如何簡單實(shí)現(xiàn)bootstrap導(dǎo)航效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
js復(fù)制網(wǎng)頁內(nèi)容并兼容各主流瀏覽器的代碼
js 復(fù)制網(wǎng)頁內(nèi)容的方法代碼有很多不過要兼容各瀏覽器就不多了,下面有個(gè)不錯(cuò)的方法,大家可以嘗試操作下2013-12-12

