DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> JavaScript實現的GBK、UTF8字符串實際長度計算函數
JavaScript實現的GBK、UTF8字符串實際長度計算函數
編輯:JavaScript基礎知識     

大家都知道,在JS中字符串的長度不分中英文字符, 每一個字符都算一個長度,這跟PHP裡的strlen()函數就不太一樣。PHP裡的strlen()函數根據字符集把GBK的中文每個2累加,把UTF-8的中文字符每個按3累加。

有些童鞋可能要問了,為什麼要計算實際長度?

主要是為了匹配數據庫的長度范圍內,比如GBK的數據庫某字段是varchar(10),那麼就相當於5個漢字長度,一個漢字等於兩個字母長度。如果是UTF8的數據庫則是每個漢字長度為3。

知道了以上原理以後,我們就可以算出一個字符串的實際長度了,如果是GBK字符集遇到中文加2,如果是UTF8字符集遇到中文加3即可
GBK長度計算函數:
復制代碼 代碼如下:
// GBK字符集實際長度計算
function getStrLeng(str){
    var realLength = 0;
    var len = str.length;
    var charCode = -1;
    for(var i = 0; i < len; i++){
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) {
            realLength += 1;
        }else{
            // 如果是中文則長度加2
            realLength += 2;
        }
    }
    return realLength;
}

UTF8長度計算函數:
復制代碼 代碼如下:
// UTF8字符集實際長度計算
function getStrLeng(str){
    var realLength = 0;
    var len = str.length;
    var charCode = -1;
    for(var i = 0; i < len; i++){
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) {
            realLength += 1;
        }else{
            // 如果是中文則長度加3
            realLength += 3;
        }
    }
    return realLength;
}

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved