源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-10-31 23:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS按字节截取字符长度实例
*  * 处理过长的字符串,截取并添加省略号  * 注:半角长度为1,全角长度为2  *  * pStr:字符串  * pLen:截取长度  *  * return: 截取后的字符串  *
[u]复制代码[/u] 代码如下:
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: 截取后的字符串  *
[u]复制代码[/u] 代码如下:
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:半角  *
[u]复制代码[/u] 代码如下:
function isFull (pChar) {   for (var i = 0; i < pChar.strLen ; i++ ) {         if ((pChar.charCodeAt(i) > 128)) {         return true;     } else {         return false;     } } }
用例:
[u]复制代码[/u] 代码如下:
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字..."
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部