//返回字符串汉字长度 英文或特殊字符两个相当于一个汉字
/*
*str:传入的字符串
*len:字符串的最大长度
*返回截取的字符串
*/
function getStrChineseLen(str,len){
str = str + "";
var w = 0;
str = str.replace(/[ ]*$/g,"");
if(getStrChineseLength(str)>len){
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
w++;
}else {
w+=2;
}
if(parseInt((w+1)/2)>len){
//return str.substring(0,i-1)+"..";
str = str.substring(0,i-1);
str = getStrChineseLength(str)==len?str.substring(0,i-2):str;
return str+"..";
break;
}
}
}
return str;
}
//-----------------------------------------返回汉字的长度
function getStrChineseLength(str){
str = str+"";
str = str.replace(/[ ]*$/g,"");
var w = 0;
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
w++;
}else {
w+=2;
}
}
var length = w % 2 == 0 ? (w/2) : (parseInt(w/2)+1) ;
return length;
}