在一个字符串中截取前面部分文字,汉字、全角符号按2个占位,数字英文、半角按一个占位,未显示完的最后加入“……”。
适合多行显示。
- function suolve( str ){
- var sub_length = 80 ;
- var temp1 = str.replace(/[^\x00-\xff]/g,"**");//精髓
- var temp2 = temp1.substring(0,sub_length);
- //找出有多少个*
- var x_length = temp2.split("\*").length - 1 ;
- var hanzi_num = x_length /2 ;
- sub_length = sub_length - hanzi_num ;//实际需要sub的长度是总长度-汉字长度
- var res = str.substring(0,sub_length);
- if(sub_length < str.length ){
- var end =res+"……" ;
- }else{
- var end = res ;
- }
- return end ;
- }