"Abbreviate" nos permite abreviar una cadena de texto usando puntos suspensivos.
Es una conversión de la función StringUtils.abbreviate de as3commons pero para Javascript.
function abbreviate(str, offset, maxWidth){
if(str == null) return str;
if(maxWidth < 4) throw new Error('Minimum width is 4');
if(str.length <= maxWidth) return str;
if(offset > str.length) offset = str.length;
if((str.length - offset) < (maxWidth - 3)){
offset = str.length - (maxWidth -3);
}
if (offset <= 4) return str.substring(0, maxWidth - 3) + "...";
if (maxWidth < 7)
throw new Error("Minimum width with offset is 7");
if ((offset + (maxWidth - 3)) < str.length){
var a = abbreviate(str.substring(offset), 0, maxWidth - 3);
return "..." + a;
}
return "..." + str.substring(str.length - (maxWidth - 3));
}
abbreviate("abcdefghijklmno", 0, 10) // "abcdefg..."
abbreviate("abcdefghijklmno", 8, 10) // "...ijklmno"
Demo