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

如何从URL末尾短横线后提取目标ID?正则表达式问题

解决URL末尾短横线后数字ID的提取问题

嘿,我懂你遇到的麻烦了——你之前用的正则/[^0-9]/g会把字符串里所有非数字字符都删掉,所以连%C3%A4里的3和4都被保留下来,最后和目标ID拼在一起,才得到了错误的34361433。

这里给你两种靠谱的解决方案:

方法一:精准正则匹配

用专门匹配字符串末尾短横线后数字的正则,只捕获我们需要的那部分:

let str = 'questions/M%C3%A4rkte+que+sentra-361433';
const matchResult = str.match(/-(\d+)$/);
const id = matchResult ? matchResult[1] : null; // 结果是"361433"

正则/-(\d+)$/的逻辑:

  • - 匹配字面量的短横线
  • (\d+) 捕获一个或多个连续数字(这就是我们要的ID)
  • $ 锚定到字符串结尾,确保我们取的是最后一段的数字

方法二:字符串分割法(更直观)

如果能确定目标ID一定在最后一个短横线后面,直接用split拆分字符串再取最后一段就行,不用正则:

let str = 'questions/M%C3%A4rkte+que+sentra-361433';
const parts = str.split('-');
const id = parts.pop(); // 结果是"361433"

这个方法简单易懂,适合结构固定的URL字符串。

两种方法都能准确提取到你要的361433,选哪种看你个人习惯啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:08:17