首頁 > web前端 > js教程 > JavaScript實現的GBK、UTF8字串實際長度計算函數_基礎知識

JavaScript實現的GBK、UTF8字串實際長度計算函數_基礎知識

WBOY
發布: 2016-05-16 16:38:33
原創
2083 人瀏覽過

大家都知道,在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         charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode             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         charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode             realLength = 1;
        }else{
            // 若是中文長度加3
            realLength = 3;
        }
    }
    return realLength;
}
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板