js显示过长的包含中英文的字符串
- 字符长度统计
- 截取指定字符长度字符串
字符长度统计
中文按照2个字符计算,英文和数字按照一个字符计算
/**
*统计字符串总字符数
*/
function countStr(str){
var charA;
var len = 0;
for(var i=0; i<str.length; i=i+1){
charA = str.charAt(i);
if(escape(charA).length > 4){
/*汉字编码后长度大于4*/
len = len + 2;
}else{
len = len + 1;
}
}
return len;
}
根据指定长度截取字符串长度
在第一步基础上进行完善,这个功能在很多地方会用到,比如对显示过长的字符串添加省略号。
/**
*根据指定长度截取字符串,str表示待截取字符串,
*maxLen表示截取后字符串长度
*/
function strLenCut(str, maxLen){
var strCut = "";
for(var i=0; i<str.length; i=i+1){
charA = str.charAt(i);
if(escape(charA).length > 4){
/*汉字编码后长度大于4*/
len = len + 2;
}else{
len = len + 1;
}
if(len <= maxLen){
/*未超出指定长度,拼接到返回的字符串中*/
strCut = strCut.concat(charA);
}else{
/*超出指定长度,显示...*/
strCut = strCut.concat("...");
break;
}
}
return strCut;
}