截取指定字数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了截取指定字数相关的知识,希望对你有一定的参考价值。

截取指定字数,可以按照半角全角以及字母来截取,兼容IE9以及以上浏览器

html: 

  <h2>控制只显示32个字过长显示省略号</h2>
  <div id="divbox"></div>

css: 

  #divbox{
    width:300px;
    color:red;
    height:200px;
    background:#efefef;
  }

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: true:全角
    * false:半角
  */
  function isFull (pChar) {
    if ((pChar.charCodeAt(0) > 128)) {
      return true;
    } else {
      return false;
    }
  }

  /* 演示代码 */
    var strs = "你好我是演示代码我比较长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长";
    // 控制只显示 32个字过长显示省略号
    var strAfter = autoAddEllipsis(strs, "64");
    $("#divbox").attr("title",strs);
    $("#divbox").html(strAfter);

以上是关于截取指定字数的主要内容,如果未能解决你的问题,请参考以下文章

jQuery截取字数用点点点显示

UTF8字符串在lua的截取和字数统计转载

iOS输入限制字数时,避免与中文拼音拼写板冲突

jquery字数限制超出显示...,原有内容在title中显示

javascript 指定された文字数(字节)を取得する。

Linux命令之统计文件字数字符数字节数及行数信息wc