zoukankan      html  css  js  c++  java
  • 截取指定字数

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

    html: 

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

    css: 

      #divbox{
        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);

  • 相关阅读:
    abstract关键字
    C#访问修饰符
    oracle客户端安装与配置
    Win10提示威胁服务已经停止,立即重启的解决方法
    什么是 Serverless 应用引擎?优势有哪些?
    Windows Server 2008 R2服务器系统安全设置参考指南
    Windows 2008 R2阿里云安全基线检查
    Windows Server 2008 R2 免费使用900天的方法
    Windows Server 2012 R2 英文版安装中文语言包教程
    七个穷人和富人不一样的地方
  • 原文地址:https://www.cnblogs.com/xiaofang-FE/p/6841866.html
Copyright © 2011-2022 走看看