Để cắt xén URL, tôi chọn rút ngắn ở giữa, vì tên miền và tệp thường quan trọng hơn đường dẫn thư mục.
Chụp và điều chỉnh cho câu hỏi này từ GitHub fork của Thư viện JavaScript của Andrew Plummer 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;
}
Ví dụ về rút ngắn một Url nên chuỗi kết quả là dài 20 ký tự:
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'
Lưu ý: mã này chỉ có được bằng chứng đọc và không đơn vị được kiểm tra. Tuy nhiên, Sugar implementation đã được unit tested.
Nguồn
2012-02-09 15:48:50
Nếu bạn sẽ cắt liên kết thì nó sẽ vô ích như một liên kết nhưng nếu bạn muốn hiển thị nó như thế này thì bạn có thể triển khai một số plugin jQuery khác để thực hiện điều này. – NAVEED