利用js截取字符串可以指定截取的长度,但是只能从左边开始截取。此效果主要是为了不加重服务器的压力写的。使用方法比较简单。
cutstr("news",40) //news是包含要截取的对像ID,40是截取的字符长度
<!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=gb2312" />
<title>js截取字符串长度-幸凡在线学习网</title>
</head>
<style>
#news{line-height:20px;background:#eee;border:1px solid #ddd;padding:5px;width:300px;font-size:12px;margin:0;}
#news li{border-bottom:1px solid #ccc; list-style:none;}
</style>
<script>
function trims(str,strlen)
{
var cutStr= str.replace(/^\s+|\s+$/g,"");
cutStr=replaces(cutStr," ","");
var cdt=""
var showstr="";
var t=0;
var h=0;
if (cutStr=="")
cutStr = "cutStr函数异常:字符串为空"; //------------来源长度检查
if(strlen==0)
cutStr = "cutStr函数异常:长度未指定";
if(parseInt(strlen)==0)cutStr = "cutStr函数异常:长度为0";
for(i=0;i<strlen;i++ )
{ //reg=/[\u4E00-\u9FA5]/g;id.substr(0,1)
if(cutStr.substr(i,1).match("[\u4e00-\u9fa5]"))
{ t=t+2;
//alert("汉字");
h=h+1;
}
else
{t=t+1;//alert("英文");
}
if(t>strlen)
break;
}
if (t-1>=strlen) //------判断是否到达指定长度
{
if(h>=strlen/2)
cutStr=left(cutStr,strlen/2);
if((h>=1)&&(h<=strlen/2))
cutStr=left(cutStr,strlen-h+1); //cutStr,strlen-h+1
if(h==0)
cutStr=left(cutStr,strlen+1);
}
else
cutStr=cutStr;
//alert(h);
//alert(t);
showstr=cutStr+"....";
return showstr;
}
function replaces(cont,bec,be){ //要替换的内容,替换字符串,替换成字符串
cont=cont.replace(bec,be);
return cont;
}
function left(mainStr,lngLen)
{
if (lngLen>0)
return mainStr.substring(0,lngLen);
else
return null;
}
function cutstr(std,len)
{
var news = document.getElementById(std).getElementsByTagName("a");
//alert(news.length);
for (var i = 0; i < news.length; i++) {
news[i].innerHTML = trims(left(news[i].innerHTML,len),len);
}
}//
window.onload=function(){
cutstr("news",40)
}
</script>
<body>
<ul id="news">
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">adff要替换的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">adff要替adfa换的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要adfa替换的adfa内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替换adfa的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替换的内容adfa替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替换adfa的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替adfa换的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替adfa换的内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要adfa替换的adfa内容替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替adfa换的内容adfa替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替adfa换的内容adfa替换字符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">要替换的adfa内容替换字adfa符串替换成字符换的内容替换字符串替串</a></li>
<li><a href="http://www.ok22.org/" title="是一个免费提供代码分享的一个网站,有最全的SEO资料,及Div+css,javascript,SEO学习网页前端设计,在线学习网,免费视频教程">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a></li>
</ul>
</body>
</html>
完
大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:
【幸凡前端技术交流群】
如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)