You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

JS如何移除竖线右侧文本,生成不含后缀的URL别名(Slug)

解决方法:先截断竖线右侧内容再生成Slug

没问题,要实现你想要的效果很简单——只需要在生成slug的常规处理步骤前,先把竖线(|)及右侧的所有内容彻底移除就行,不管右侧是动态变化的公司名还是其他内容。

修改后的函数

function convertToSlug(Text){ 
  return Text 
    .toString() 
    .trim()
    // 核心改动:按竖线分割取左侧部分,再清除前后空格
    .split('|')[0]
    .trim()
    .toLowerCase() 
    .replace(/\s+/g, "-") 
    .replace(/[^\w\-]+/g, "") 
    .replace(/\-\-+/g, "-") 
    .replace(/^-+/, "") 
    .replace(/-+$/, ""); 
}

关键改动说明

我在原函数里新增了两行逻辑:

  • .split('|')[0]:把输入字符串按竖线拆分成数组,直接取数组第一个元素(也就是竖线左侧的所有内容),不管竖线后面是什么动态内容,都会被直接舍弃。
  • .trim():清除左侧内容前后可能存在的空格(比如原标题里 | Company Name前面的空格),避免生成的slug出现多余的连字符。

效果验证

对于你的示例标题This is a page title | Company Name

  1. 经过split('|')[0]后得到This is a page title (注意后面的空格)
  2. 再经过trim()变成This is a page title
  3. 后续流程和原函数一致,最终生成slug:this-is-a-page-title

而且这个改动完全兼容没有竖线的标题——如果输入里没有|split('|')[0]就是整个原字符串,trim()后和原逻辑完全一致,不会影响原有功能。

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

火山引擎 最新活动