字符串限长显示:雕虫小技揭示是否重视细节
Thursday, January 4, 2007 9:09:21 AM
在许多网页上可以见到,为了限长显示字符串,却没有注意细节的处理,导致在中英文混杂时,会出现一些可以避免的情况。
如,对字符串作限长十字处理,有可能会让人看到这种情况:
一二三四五六七八九十...
1234567890...
linux and ...
而原本这是可以排得更好的。
以JavaScript而言,下面的函数即可做到这一点。
function setWords(string,limit,suffix) {
var count=0;
var result="";
for(var i=0;i<string.length;i++) {
if (string.charCodeAt(i)>=256) count+=2;
else count++;
result+=string.charAt(i);
if(count>=limit)break;
}
if(count<limit)return string;
if(count==limit && result==string)return string;
return result.substr(0,result.length-1) + suffix;
}
对于各种动态生成的网页,用不同的语言实现这样的功能也是相当容易的。
字符串限长示例网页.zip
如,对字符串作限长十字处理,有可能会让人看到这种情况:
一二三四五六七八九十...
1234567890...
linux and ...
而原本这是可以排得更好的。
以JavaScript而言,下面的函数即可做到这一点。
function setWords(string,limit,suffix) {
var count=0;
var result="";
for(var i=0;i<string.length;i++) {
if (string.charCodeAt(i)>=256) count+=2;
else count++;
result+=string.charAt(i);
if(count>=limit)break;
}
if(count<limit)return string;
if(count==limit && result==string)return string;
return result.substr(0,result.length-1) + suffix;
}
对于各种动态生成的网页,用不同的语言实现这样的功能也是相当容易的。
字符串限长示例网页.zip
