"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