Para el truncado de URL elijo acortarme en el medio, ya que el dominio y el archivo suelen ser más importantes que la ruta del directorio.
Tomado y adaptado para esta pregunta de mi GitHub fork de Andrew Plummer's JavaScript Library Sugar.
String.prototype.shorten = function(length, position, countSplitter, splitter) {
if (this.length < 1 && length < 1) return String(this);
if (!(typeof(splitter) === 'string')) splitter = '...';
if (!(typeof(countSplitter) === 'boolean')) countSplitter = true;
var balance = (countSplitter) ? splitter.length : 0;
if (length <= balance || this.length <= length) return String(this);
// Perform shortening
var shortened, beforeSplitter, afterSplitter;
if (position == 'left') {
afterSplitter = this.substring(this.length - length + balance, this.length - 1);
shortened = splitter + afterSplitter;
} else if (position == 'right') {
beforeSplitter = this.substring(0, length - balance);
shortened = beforeSplitter + splitter;
} else {
beforeSplitter = this.substring(0, Math.ceil((length/2) - (balance/2)));
afterSplitter = this.substring(this.length - Math.floor((length/2) - (balance/2)), this.length);
shortened = beforeSplitter + splitter + afterSplitter;
}
return shortened;
}
Ejemplo de acortar una URL por lo que la cadena resultante es de 20 caracteres de longitud:
var toShorten = 'http://stackoverflow.com/questions/9156458/when-using-jquery-linkify-plugin-how-do-i-truncate-the-url';
var shortened = toShorten.shorten(20); // Output: 'http://st...-the-url'
Nota: este código sólo ha sido corregidos y no unidad probada. El Sugar implementation ha sido unit tested, sin embargo.
Si corta el enlace, será inútil como un enlace, pero si desea visualizarlo de esta manera, puede implementar otro plugin jQuery para implementarlo. – NAVEED