需要JQuery ,下面的代码在外部js文件中。
<script type="text/javascript"> $(document).ready(function(){ var arrcomments = $(".wenben"); //提取循环显示的多个字块 arrcomments.each(function(){ //每个字块函数 var len = 0; var s = $(this).text(); //获取字块字符串 var l=$(this).text().length; //获取字块字符串长度 var n=90; //设置字符长度为32个 for (var i = 0; i < l; i++) { if (s[i].match(/[^\x00-\xff]/ig) != null) //判断半角全角中英文(可能有漏的) len += 2; //是中文记2个字符 else len += 1; //半角数字英文记1个字符 if (len > n) break; //如果循环后字符长度大于设定(n)的长度,结束循环,此时的循环次数i即是第N个文字。 } if(l > i){ //字块字符串长度大于限定的字数 $(this).attr("title",s); //将文本所有内容用标签的title属性提示文本全部内容 s=$(this).text(s.substring(0,i)+"..."); //截取后的文字后面加...输出 } }); }); </script>
纯Js,在网页内部的代码
<script type="text/javascript"> function test() { s = document.getElementById("wenben").innerHTML; //获得字符串文本 l = s.length; //获得字符串长度 len = 0; n = 30; //设定限定的字符长度 for (var i=0; i<l; i++) { // if (s[i].match(/[^\x00-\xff]/ig) != null) len +=2; else len +=1; if (len > n) break; } if (l > i) { s = s.substring(0,i)+"..."; } document.write(s); } </script> <div id="wenben">这里是一段测试文字的长度,this is test text。</div> <button onClick="test()">点这里截取</button>