即时通讯尝试根据元素容器的大小制作一个小名称摘要函数,这里是我的;javascript摘要函数
function shorten_text(str, size){
size = size.match(/[0-9]*/);
var endValue = Math.floor(Number(size)/10);
var number;
var newStr;
for (number = 0; number <= endValue; number++) {
if(str[number].length != 0) {
newStr += str[number];
}
}
return newStr + '...';
}
shorten_text('Phil Jackson', '94px');
// output should be 'Phil Jack...'
我似乎得到的是undefinedundef ... 任何人都可以看到,我错了?
编辑:
基于下面的评论的人谁是谷歌搜索的这种功能修改后的代码:
function shorten_text(str, size){
size = parseInt(size);
var endValue = Math.floor(size/10);
if(str.length > endValue) {
return str.substring(0, endValue) + '...';
}else{
return str;
}
}
截屏:
screenshot http://www.freeimagehosting.net/uploads/4639663b52.gif
你是否假设每个字符都是一个像素宽?这个怎么用? – Nir 2010-03-31 05:29:53
我已添加屏幕截图来显示。 – 2010-03-31 06:05:16
谢谢。我仍然没有得到如何为宽度的每个像素添加1个字符,因为每个字符的可变宽度肯定超过1个像素。 – Nir 2010-03-31 07:43:20