js 精確計算字符串字節長度

精確計算字符串長度,不能簡單使用length,好比雙字節字符會被計算成一個數量,因此須要計算字符串的字節數進行對比.this

自定義原型方法

String.prototype.byteLength = function() {  //獲取字符串的字節數
    var b = 0, l = this.length;  //初始化字節數遞加變量並獲取字符串參數的字符個數
    if(l) {  //若是存在字符串,則執行計劃
        for(var i = 0; i < l; i ++) {  //遍歷字符串,枚舉每一個字符
            if(this.charCodeAt(i) > 255) {  //字符編碼大於255,說明是雙字節字符
                b += 2;  //則累加2個
            }else {
                b ++;  //不然遞加一次
            }
        }
        return b;  //返回字節數
    } else {
        return 0;  //若是參數爲空,則返回0個
    }
};

使用方法

var s = "String 類型長度";  //定義字符串直接量
console.log(s.byteLength());  //返回14
相關文章
相關標籤/搜索