制作传递文件的样式时,如果文件标题过长,会使样式乱版而且很不好看,今天在做项目的时候发现了这个问题,参考了腾讯的样式,写了一个小函数用于调整文件名。
1 function justifytext(text,limited){ 2 var _extension = text.substring(text.lastIndexOf(‘.‘),text.length), 3 _name = text.substring(0,text.lastIndexOf(‘.‘)), 4 _namelimit = limited - _extension.length, 5 _index = 0, justifytext=""; 6 for(var i=0;i<_name.length;i++){ 7 if(_index+6 < _namelimit){ 8 if((/[^\x00-\xff]/).test(_name.charAt(i))){ 9 justifytext +=_name.charAt(i); 10 _index+=2; 11 }else{ 12 justifytext +=_name.charAt(i); 13 _index+=1; 14 } 15 }else{ 16 justifytext+=‘...‘+_name.charAt(_name.length-1)+_extension; 17 break; 18 } 19 } 20 21 return justifytext; 22 } 23 24 25 26 function strlen(str){ 27 if (str == null) return 0; 28 if (typeof str != "string"){ 29 str += ""; 30 } 31 return str.replace(/[^\x00-\xff]/g,"01").length; 32 }
效果
不足之处:需要字符串受限长度,需要限制标题框宽度来得知受限宽度
必须要有后缀名,否则会错乱
时间: 2024-10-12 06:41:04