截取指定字数

截取指定字数,可以按照半角全角以及字母来截取,兼容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);

时间: 2024-10-06 16:43:18

截取指定字数的相关文章

jQuery实现的截取指定长度字符串代码

jQuery实现的截取指定长度字符串代码:截取字符串是常有的操作,可以说非常的频繁,几乎任何有新闻列表形式的站点都会有此操作,下面就是一段能够实现此功能的代码实例,直接套用就可以了,希望能够大家带来一定帮助.代码如下: <!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>批量注册事件处理函数-蚂蚁部落</title> <style type="text

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗?

sql语句,能够截取指定字符串后面的一个字符串吗? 如下图: dasf.sdf dergre.adsf.lfs ljjdf.ljfjl 想要得到第一个.后面的字符串内容 sdf adsf.lfs ljfjl SQL语句写法如下,str为字段名称: select id, substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test; 如果中间间隔为-,则sql语句为 select id, substring(st

asp.net截取指定长度的字符串内容

1 /// <summary> 2 /// 用于截取指定长度的字符串内容 3 /// </summary> 4 /// <param name="sString">用于截取的字符串</param> 5 /// <param name="nLength">截取字符串的长度</param> 6 /// <returns>返回截取后的字符串</returns> 7 public

【转载】C# 字符串截取指定长度的中文字符--精点

通常,一个中文会占两个字节的空间.很多语言里,一个中文字符就算是2个字符长度. 但在C#中,string里包含的中文字符只占一个字符长度.这就导致很多时候,使用string.SubString(int startIndex,int length)方法来截取字符会错位. 最近由于工作原因,会截取指定长度的字符来使用.但是在文档里,1个中文是2个长度来计算.刚开始还只是以为文档错误,后来才知道是由于C#的差异造成的. 刚开始,是直接到网上找算法,但是找到的算法,基本思路都是挨个字符判断(根据ASCI

sql中从指定位置截取指定长度字符串

1. 字符串函数应用 --从指定索引截取指定长度的字符串 SELECT substring('abcdefg',2,5) --获取字符串中指定字符的索引(从1开始) select charindex(',','ab,cdefg') --实际应用中的语句 select proId,color,substring(FacePath,0,charindex(',',FacePath)) as FacePath from proselect where id=1000000 2. 日期函数应用 --获取

jQuery截取指定长度字符串

例子,截取字符串代码. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery截取字符串操作---www.jbxue.com</title> <script type="text/javascript"

截取指定长度文章点击可以展开全部代码

截取指定长度文章点击可以展开全部代码:文章的篇幅往往不是那么恰到好处,如果以原有的篇幅展示,那么有可能会影响网页的布局或者美观度,这个时候就要根据情况适量截取一定的字符串,以适应布局,不过当点击一个按钮的时候依然可以展开全部的内容,下面就通过一个实例详细介绍一下如何实现此效果,代码示例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="

截取指定长度的字符串

/* * 函数说明:截取指定长度的字符串 * utf-8专用 汉字和大写字母长度算1,其它字符长度算0.5 * * @param string $str 原字符串 * @param int $len 截取长度 * @param string $etc 省略字符... * @return string 截取后的字符串 */ if(!function_exists('ReStrLen')) { function ReStrLen($str, $len=10, $etc='...') { $restr

截取指定长度字节数后的字符串(Java方法实例,注:同样思路js也适用)

可能之前是习惯了上网查看其他人的资料,当我遇到这样的问题的时候,我第一时间想到的就是上网查个现成的方法直接用:可是查阅网上各大论坛以及其他资料之后,发现大部分人都是照搬其他人的,这种情况很严重,而且个人感觉很不利于个人技术的成长:当然更重要的原因是,我感觉网上的大部分方法都把问题给复杂化了,无论是用js方法截取还是通过封装Java类,都感觉繁琐了些:为此我自己写了个相对来说较为简单的方法,其实很简单的思路和方法就能实现,下面奉上我自己的方法,希望大家多多指正不足之处(支持全角输入的字符和汉字等,