经常遇到页面中各种“中文字符”和其他“字符”无法判断长度,导致截取不利,先下面用这个js实现,中文字符截断:
function _substring(str, len){
var vlen=0, i=0, extDot="";for(;i<str.length;i++){
if(vlen>=len){
extDot = "...";
break;
}else{
if(str.charCodeAt(i)<27||str.charCodeAt(i)>126) {//全角
vlen+=2;
}else{
vlen++;
}
}
}
return str.substring(0, i)+extDot;;
}
function processTitle(a, len){
var text=a.innerHTML;
a.innerHTML=_substring(text, len);
}
$("dd.mod_bd a").each(function(){
processTitle(this, 40);//要求中文字符为20个,超出部分截取用“...”代替
});