메신저 요소 컨테이너의 크기에 따라 작은 이름 요약 함수를 만들려고합니다. 내가 얻을 수가 무엇javascript summary function
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;
}
}
스크린 샷 : 당신은 당신의 newStr
를 초기화해야
screenshot http://www.freeimagehosting.net/uploads/4639663b52.gif
각 문자의 너비가 1 픽셀이라고 가정합니까? 이게 어떻게 작동합니까? – Nir
표시 할 스크린 샷을 추가했습니다. –
감사합니다. 나는 각 너비가 1 픽셀보다 큰 가변 너비를 가지므로 너비에 대한 각 픽셀에 대해 1 문자를 추가하는 것이 어떻게 작동하는지 알지 못합니다. – Nir