gpt4 book ai didi

javascript - 缩短显示的 URL,保留开头和结尾(Firebug 'Net' 面板样式)

转载 作者:行者123 更新时间:2023-11-30 07:43:55 25 4
gpt4 key购买 nike

我想在表格中显示一个 URL,同时将其限制为特定长度。作为一个 URL,最好保留最有意义的部分,例如开头和结尾。在 Firebug“网络”面板中查看长 URL 时可以看到此功能。

最佳答案

这是一个快速而肮脏的解决方案,但到目前为止它对我来说效果很好,并且可以很容易地更新到任何个人偏好。它分为两个函数以提高可读性和重用性。

此函数使用如下所示的 shortString 函数。它将 URL 缩短为小于或等于指定长度 (l),同时保留 URL 的开头和结尾并 chop 首选字符(' '、'/'、'&')。

function shortUrl(url, l){
var l = typeof(l) != "undefined" ? l : 50;
var chunk_l = (l/2);
var url = url.replace("http://","").replace("https://","");

if(url.length <= l){ return url; }

var start_chunk = shortString(url, chunk_l, false);
var end_chunk = shortString(url, chunk_l, true);
return start_chunk + ".." + end_chunk;
}

此函数从字符串的开头(或结尾,如果 reverse=true)开始,一旦达到可接受的长度,便开始寻找首选的停止字符以 chop 。如果在达到指定长度 (l) 之前未找到停止字符,则将字符串 chop 为最大长度。

function shortString(s, l, reverse){
var stop_chars = [' ','/', '&'];
var acceptable_shortness = l * 0.80; // When to start looking for stop characters
var reverse = typeof(reverse) != "undefined" ? reverse : false;
var s = reverse ? s.split("").reverse().join("") : s;
var short_s = "";

for(var i=0; i < l-1; i++){
short_s += s[i];
if(i >= acceptable_shortness && stop_chars.indexOf(s[i]) >= 0){
break;
}
}
if(reverse){ return short_s.split("").reverse().join(""); }
return short_s;
}

例子

>>> var url = "http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/"
>>> shortUrl(url)
"blog.stackoverflow.com/..swer-your-own-questions/"

关于javascript - 缩短显示的 URL,保留开头和结尾(Firebug 'Net' 面板样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com