JavaScript实现的GBK、UTF8字符串实际长度计算函数

 更新时间:2014年08月27日 09:33:42   投稿:junjie  
这篇文章主要介绍了JavaScript实现的GBK、UTF8字符串实际长度计算函数,需要的朋友可以参考下

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

相关文章

  • JWT构成及工作原理

    JWT构成及工作原理

    这篇文章介绍了JWT构成及工作原理,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • Javascript实例教程(19) 使用HoTMetal(5)

    Javascript实例教程(19) 使用HoTMetal(5)

    Javascript实例教程(19) 使用HoTMetal(5)...
    2006-12-12
  • 网页编辑器ckeditor和ckfinder配置步骤分享

    网页编辑器ckeditor和ckfinder配置步骤分享

    ckeditor+ckfinder配置用法,现在ckeditor是互联网上应用比较广泛的网页编辑器了,这里介绍下配置方法,需要的朋友可以参考下
    2012-05-05
  • 详解JavaScript 为什么要有 Symbol 类型?

    详解JavaScript 为什么要有 Symbol 类型?

    这篇文章主要介绍了JavaScript 为什么要有 Symbol 类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 超全面的javascript中变量命名规则

    超全面的javascript中变量命名规则

    javascript 有三大经典的变量命名法:匈牙利命名法,驼峰式命名法和帕斯卡命名法。今天主要介绍下这三种命名方式。文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • JS获取url链接字符串 location.href

    JS获取url链接字符串 location.href

    有时候我们需要获取当前网页的网址,方便我们判断,一般情况我们都是通过location.href来获取
    2013-12-12
  • JavaScript中String.match()方法的使用详解

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

    这篇文章主要介绍了JavaScript中String.match()方法的使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • js转义字符介绍

    js转义字符介绍

    有时候js得到json串中含有"<"和">" ,那么两个尖括号中间的文字是无法在html页面显示出来的,必须用转义字符
    2013-11-11
  • DOM精简教程

    DOM精简教程

    DOM精简教程...
    2006-10-10
  • javaScript NameSpace 简单说明介绍

    javaScript NameSpace 简单说明介绍

    命名空间,一看就知道主要目的是为了避免冲突。下面就来说一下如何打造自己的JavaScript命名空间。
    2013-07-07

最新评论