You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript实现URL末尾加省略号的长网址截断?

纯JavaScript实现长URL显示为带省略号的短链接

需求是将长URL的显示文本改为带省略号的短格式,同时保留原URL的跳转功能(注意:若直接修改href会导致跳转失效,正确做法是保留原链接地址,仅修改显示文本)。

核心截断函数

这个函数会优先保留域名,再截断后续路径,保证可读性:

function truncateUrl(url, maxLength = 60) {
  // 如果URL本身长度符合要求,直接返回
  if (url.length <= maxLength) return url;
  
  // 解析URL,分离协议和域名
  const urlObj = new URL(url);
  const domain = `${urlObj.protocol}//${urlObj.host}`;
  
  // 如果域名长度已经超过限制,直接截断整个URL
  if (domain.length >= maxLength) {
    return url.slice(0, maxLength - 3) + '...';
  }
  
  // 计算剩余可分配给路径的长度(预留3个字符给省略号)
  const remainingLen = maxLength - domain.length - 3;
  // 拼接域名、截断后的路径和省略号
  return `${domain}/${urlObj.pathname.slice(1, remainingLen)}...`;
}

应用到页面链接

假设页面中需要处理的链接带有long-url类,执行以下代码即可批量转换:

// 获取所有目标链接
const targetLinks = document.querySelectorAll('.long-url');

targetLinks.forEach(link => {
  const originalUrl = link.href;
  // 生成截断后的短URL文本
  const shortDisplayUrl = truncateUrl(originalUrl, 60);
  // 修改链接显示文本,保留原跳转地址
  link.textContent = shortDisplayUrl;
});

示例效果

原链接:

<a href="https://mozodeals.com/threads/iqoo-12-5g-worlds-fastest-processor-snapdragon%C2%AE-8-gen-3-12gb-ram-and-256gb-rom.19/" class="long-url">text</a>

处理后显示为:
https://mozodeals.com/threads/iqoo-12-5g-worlds-fastest-processor-snapdragon...
点击仍会跳转到原完整URL。

内容的提问来源于stack exchange,提问作者Amit Goyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:16:00