国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現的GBK、UTF8字符串實際長度計算函數

2019-11-20 14:14:15
字體:
來源:轉載
供稿:網友

大家都知道,在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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆回县| 郯城县| 台中县| 余干县| 铜山县| 武隆县| 扎鲁特旗| 弥渡县| 鸡东县| 泸溪县| 襄城县| 肇东市| 清流县| 长乐市| 汶上县| 庆元县| 宽城| 泰宁县| 昭平县| 汪清县| 安顺市| 宁蒗| 扬州市| 城市| 伊春市| 日喀则市| 特克斯县| 木兰县| 辽宁省| 景谷| 工布江达县| 新源县| 南华县| 惠来县| 闵行区| 安陆市| 宜兰市| 西充县| 白河县| 谷城县| 焦作市|