方法如下:
//在一个字符串中截取前面部分文字,汉字、全角符号按2个占位,数字英文、半角按一个占位,未显示完的最后加入“……”。 //适合多行显示。 function suolve(str, sub_length) { // var = 80 ; if (str == "" || str == null) return ""; 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; }