JS按字节截取字符长度实例

 更新时间:2013年11月20日 16:00:40   投稿:shangke  
这篇文章主要介绍了JS按字节截取字符长度实例,有需要的朋友可以参考一下


*
 * 处理过长的字符串,截取并添加省略号
 * 注:半角长度为1,全角长度为2
 *
 * pStr:字符串
 * pLen:截取长度
 *
 * return: 截取后的字符串
 *

复制代码 代码如下:

function autoAddEllipsis(pStr, pLen) {
 
    var _ret = cutString(pStr, pLen);
    var _cutFlag = _ret.cutflag;
    var _cutStringn = _ret.cutstring;
 
    if ("1" == _cutFlag) {
        return _cutStringn + "...";
    } else {
        return _cutStringn;
    }
}

*
 * 取得指定长度的字符串
 * 注:半角长度为1,全角长度为2
 *
 * pStr:字符串
 * pLen:截取长度
 *
 * return: 截取后的字符串
 *
复制代码 代码如下:

function cutString(pStr, pLen) {
 
    // 原字符串长度
    var _strLen = pStr.length;
 
    var _tmpCode;
 
    var _cutString;
 
    // 默认情况下,返回的字符串是原字符串的一部分
    var _cutFlag = "1";
 
    var _lenCount = 0;
 
    var _ret = false;
 
    if (_strLen <= pLen/2) {
        _cutString = pStr;
        _ret = true;
    }
 
    if (!_ret) {
        for (var i = 0; i < _strLen ; i++ ) {
            if (isFull(pStr.charAt(i))) {
                _lenCount += 2;
            } else {
                _lenCount += 1;
            }
 
            if (_lenCount > pLen) {
                _cutString = pStr.substring(0, i);
                _ret = true;
                break;
            } else if (_lenCount == pLen) {
                _cutString = pStr.substring(0, i + 1);
                _ret = true;
                break;
            }
        }
    }
    
    if (!_ret) {
        _cutString = pStr;
        _ret = true;
    }
 
    if (_cutString.length == _strLen) {
        _cutFlag = "0";
    }
 
    return {"cutstring":_cutString, "cutflag":_cutFlag};
}

*
 * 判断是否为全角
 *
 * pChar:长度为1的字符串
 * return: tbtrue:全角
 *          false:半角
 *

复制代码 代码如下:

function isFull (pChar) {
  for (var i = 0; i < pChar.strLen ; i++ ) {    
    if ((pChar.charCodeAt(i) > 128)) {
        return true;
    } else {
        return false;
    }
}
}

用例:
复制代码 代码如下:

testStr = "测试1字符串";
autoAddEllipsis(testStr, 1); // "测..."
autoAddEllipsis(testStr, 2); // "测..."
autoAddEllipsis(testStr, 3); // "测..."
autoAddEllipsis(testStr, 4); // "测试..."
autoAddEllipsis(testStr, 5); // "测试1..."
autoAddEllipsis(testStr, 6); // "测试1..."
autoAddEllipsis(testStr, 7); // "测试1字..."

相关文章

  • js实现自定义滚动条的示例

    js实现自定义滚动条的示例

    这篇文章主要介绍了js实现自定义滚动条的示例,帮助大家制作JS特效,美化自身网页,感兴趣的朋友可以了解下
    2020-10-10
  • javascript中this的四种用法

    javascript中this的四种用法

    在javascript当中每一个function都是一个对象,所以在这个里var temp=this 指的是function当前的对象。this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。
    2015-05-05
  • js中的hasOwnProperty和isPrototypeOf方法使用实例

    js中的hasOwnProperty和isPrototypeOf方法使用实例

    这篇文章主要介绍了js中的hasOwnProperty和isPrototypeOf方法使用实例,需要的朋友可以参考下
    2014-06-06
  • 超详细的javascript数组方法汇总

    超详细的javascript数组方法汇总

    这篇文章主要对javascript的数组方法进行了详细的汇总,包括了最常用的的数组方法,还有扩展方法,很全面,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 前端项目npm install 安装依赖报错的解决方案(三种问题解决方案)

    前端项目npm install 安装依赖报错的解决方案(三种问题解决方案)

    本文给大家介绍前端项目npm install 安装依赖报错的解决方案(三种问题解决方案),给大家总结了前端项目安装依赖,遇到过的问题,每一种问题给大家完美解决方案,感兴趣的朋友一起看看吧
    2023-12-12
  • js判断图片加载完成后获取图片实际宽高的方法

    js判断图片加载完成后获取图片实际宽高的方法

    这篇文章主要介绍了js判断图片加载完成后获取图片实际宽高的方法,涉及JavaScript图片加载及属性操作相关技巧,需要的朋友可以参考下
    2016-02-02
  • JS 事件绑定函数代码

    JS 事件绑定函数代码

    JS 事件绑定函数代码,解决了浏览器兼容,现在可以兼容IE6 7 8 FF 谷歌
    2010-04-04
  • 详解JavaScript中Object的重要属性

    详解JavaScript中Object的重要属性

    JavaScript 中的 Object 是一种非常灵活且强大的数据类型,它允许我们创建和操作键值对,在本文中,我们将深入探讨 Object 的一些重要属性,以便更好地理解和利用这个关键的数据结构,需要的朋友可以参考下
    2023-11-11
  • js实现上一页下一页的效果【附代码】

    js实现上一页下一页的效果【附代码】

    下面小编就为大家带来一篇js实现上一页下一页的效果【附代码】。小编觉得非常不错。现在分享给大家。希望能给大家一个参考。
    2016-03-03
  • JS document对象简单用法完整示例

    JS document对象简单用法完整示例

    这篇文章主要介绍了JS document对象简单用法,结合完整实例形式详细分析了JS document对象获取、输出、节点调用等相关操作技巧,需要的朋友可以参考下
    2020-01-01

最新评论