欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現(xiàn)的GBK、UTF8字符串實際長度計算函數(shù)

 更新時間:2014年08月27日 09:33:42   投稿:junjie  
這篇文章主要介紹了JavaScript實現(xiàn)的GBK、UTF8字符串實際長度計算函數(shù),需要的朋友可以參考下

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

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

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

知道了以上原理以后,我們就可以算出一個字符串的實際長度了,如果是GBK字符集遇到中文加2,如果是UTF8字符集遇到中文加3即可
GBK長度計算函數(shù):

復(fù)制代碼 代碼如下:

// 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長度計算函數(shù):
復(fù)制代碼 代碼如下:

// 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;
}

相關(guān)文章

  • Javascript學(xué)習(xí)筆記一 之 數(shù)據(jù)類型

    Javascript學(xué)習(xí)筆記一 之 數(shù)據(jù)類型

    在接觸每一門編程語言之前,首先明白我們程序設(shè)計要處理的是數(shù)據(jù),而數(shù)據(jù)又用數(shù)據(jù)類型將其區(qū)分。
    2010-12-12
  • javascript定義變量時加var與不加var的區(qū)別

    javascript定義變量時加var與不加var的區(qū)別

    這篇文章主要介紹了javascript 變量中 var 與不加var的區(qū)別,需要的朋友可以參考下
    2014-12-12
  • 詳解JavaScript正則表達式中的global屬性的使用

    詳解JavaScript正則表達式中的global屬性的使用

    這篇文章主要介紹了詳解JavaScript正則表達式中的global屬性的使用,是JS學(xué)習(xí)進階中的重要知識點,需要的朋友可以參考下
    2015-06-06
  • DOM下的節(jié)點屬性和操作小結(jié)

    DOM下的節(jié)點屬性和操作小結(jié)

    DOM 節(jié)點屬性操作方法小結(jié)。
    2009-05-05
  • 最新評論