最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

有些童鞋可能要問了,為什么要計(jì)算實(shí)際長度?

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

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

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

// GBK字符集實(shí)際長度計(jì)算
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長度計(jì)算函數(shù):
復(fù)制代碼 代碼如下:

// UTF8字符集實(shí)際長度計(jì)算
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)文章

  • JWT構(gòu)成及工作原理

    JWT構(gòu)成及工作原理

    這篇文章介紹了JWT構(gòu)成及工作原理,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • Javascript實(shí)例教程(19) 使用HoTMetal(5)

    Javascript實(shí)例教程(19) 使用HoTMetal(5)

    Javascript實(shí)例教程(19) 使用HoTMetal(5)...
    2006-12-12
  • 網(wǎng)頁編輯器ckeditor和ckfinder配置步驟分享

    網(wǎng)頁編輯器ckeditor和ckfinder配置步驟分享

    ckeditor+ckfinder配置用法,現(xiàn)在ckeditor是互聯(lián)網(wǎng)上應(yīng)用比較廣泛的網(wǎng)頁編輯器了,這里介紹下配置方法,需要的朋友可以參考下
    2012-05-05
  • 詳解JavaScript 為什么要有 Symbol 類型?

    詳解JavaScript 為什么要有 Symbol 類型?

    這篇文章主要介紹了JavaScript 為什么要有 Symbol 類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 超全面的javascript中變量命名規(guī)則

    超全面的javascript中變量命名規(guī)則

    javascript 有三大經(jīng)典的變量命名法:匈牙利命名法,駝峰式命名法和帕斯卡命名法。今天主要介紹下這三種命名方式。文中通過示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • JS獲取url鏈接字符串 location.href

    JS獲取url鏈接字符串 location.href

    有時候我們需要獲取當(dāng)前網(wǎng)頁的網(wǎng)址,方便我們判斷,一般情況我們都是通過location.href來獲取
    2013-12-12
  • JavaScript中String.match()方法的使用詳解

    JavaScript中String.match()方法的使用詳解

    這篇文章主要介紹了JavaScript中String.match()方法的使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • js轉(zhuǎn)義字符介紹

    js轉(zhuǎn)義字符介紹

    有時候js得到j(luò)son串中含有"<"和">" ,那么兩個尖括號中間的文字是無法在html頁面顯示出來的,必須用轉(zhuǎn)義字符
    2013-11-11
  • DOM精簡教程

    DOM精簡教程

    DOM精簡教程...
    2006-10-10
  • javaScript NameSpace 簡單說明介紹

    javaScript NameSpace 簡單說明介紹

    命名空間,一看就知道主要目的是為了避免沖突。下面就來說一下如何打造自己的JavaScript命名空間。
    2013-07-07

最新評論

怀来县| 营山县| 财经| 筠连县| 彭阳县| 武清区| 瑞丽市| 肇州县| 新平| 敖汉旗| 天全县| 英德市| 农安县| 电白县| 南靖县| 庄浪县| 罗定市| 庄浪县| 玛沁县| 安多县| 区。| 杭锦后旗| 靖宇县| 东平县| 恩平市| 晋中市| 怀安县| 安达市| 承德县| 新营市| 南通市| 阜宁县| 辽宁省| 布尔津县| 佛教| 黔西| 西安市| 东乌珠穆沁旗| 万荣县| 伊通| 永定县|