限制文字

做资讯网站的时候,常常会遇到截取文本的地方,于是就写了这个插件。
做到了中英文区别对待
只需要传一个参数,即需要限制的字符个数
注意:中文占两个字符


html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>限制文字</title>
<meta name="description" content=''>
<meta name="keywords" content=''>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="textIntercept.js"></script>
</head>
<body>
<p>abcdeabcde中石化华南中石化华南中石化华南中石化华南abcde</p>
<p>中石化华南/华中LLDPE下调100元/吨,中石化华南LDPE下调100元/吨,中油华南LLDPE下调100元/吨。</p>
<p>中石化华东/中油华南部分HDPE下调100-200元/吨。</p>
<p>1、找塑料发布此信息目的在于传播更多信息,与本网站立场无关。</p>
<p>2、找塑料不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、 及时性、原创性等。</p>
<p>3、相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。</p>
<p>4、如有侵权请直接与作者联系或书面发函至本公司转达、处理。</p>
</body>
<script type="text/javascript">
$(function(){
    $("p").each(function(){
        var $this = $(this),
            str = $this.text();
        $this.textIntercept(60)
    })
});
</script>

js文件


$.fn.textIntercept = function (interval) {
    var str = this.text(),          //需要限制文字的文本
        interval = interval,        //限制的字数,汉字相当于两个字符
        realLength = 0,
        strtext = "";

    //获取文本的长度
    function getLength(){
        var len = str.length, charCode = -1;
        for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128){
                realLength += 1;    //字母标点为一个字符
            }else{
                realLength += 2;   //汉字为两个字符
            };
        }
        return realLength;
    };

    //截图文本
    function interceptText(){
        var len = getLength();
        if(len>0){
            if(len>interval){
                var num = 0;
                for (var i = 0; i < str.length; i++) {
                    charCode = str.charCodeAt(i);
                    if (charCode >= 0 && charCode <= 128){
                        strtext += str[i];
                        num += 1;
                    }else{
                        strtext += str[i]
                        num += 2;
                    };
                    if(num==interval || num==interval+1){
                        strtext=strtext+"...";
                        break;
                    };
                };
            }else{
                strtext = str;
            };
        };
        return strtext;
    }interceptText();

    this.text(strtext);

    return this;
}

截取前
这里写图片描述
截取后
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值