[javascript学习指南]Javascipt获取字符串真实长度(兼容IE,fireFox)

更新时间:2018-10-18    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

JS原先的长度中文跟英文一样一个字符为1个长度。所以这里就得需要大家自己判断并获取字符串的实际长度了。
核心代码:

 代码如下 var jmz = {};
jmz.GetLength = function(str) {
    ///获得字符串实际长度,中文2,英文1
    ///要获得长度的字符串
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) realLength += 1;
        else realLength += 2;
    }
    return realLength;
};   

执行代码:

 代码如下

alert(jmz.GetLength("测试测试ceshiceshi));

image

JS版获取字符串真实长度和取固定长度的字符串函数(兼容IE,fireFox)

   

 代码如下
   
       
       
      JS版获取字符串真实长度和取固定长度的字符串函数(兼容IE,fireFox)<br />    
   
   
    <script type="text/javascript">
    // 得到字符串的真实长度(双字节换算为两个单字节)
    function getStrActualLen(sChars)
    {
        return sChars.replace(/[^x00-xff]/g,"xx").length;
    }
    // 截取固定长度子字符串 sSource为字符串iLen为长度
    function getInterceptedStr(sSource, iLen)
    {
        if(sSource.replace(/[^x00-xff]/g,"xx").length <= iLen)
        {
            return sSource;
        }
        var str = "";
        var l = 0;
        var schar;
        for(var i=0; schar=sSource.charAt(i); i++)
        {
            str += schar;
            l += (schar.match(/[^x00-xff]/) != null ? 2 : 1);
            if(l >= iLen)
            {
                break;
            }
        }
        return str;
    }
    var str1="这是一个字符串截取的函数,this is a test!";
    alert(getInterceptedStr(str1,29));
    </script>
   
   

本文来源:http://www.bbyears.com/wangyezhizuo/45164.html

热门标签

更多>>

本类排行