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