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

求可提取YouTube频道标识的JavaScript正则表达式(含别名格式)

JavaScript正则表达式提取YouTube频道标识(含@别名格式)

方案实现

直接用下面的正则表达式可以覆盖你列出的所有URL格式,同时自动忽略附加路径、查询参数和锚点:

const channelRegex = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/(?:c\/|channel\/|@)?([^/?#]+)/i;

使用示例

封装成函数方便调用:

function getYouTubeChannelId(url) {
  const match = url.match(channelRegex);
  return match ? match[1] : null;
}

// 测试你的所有用例
console.log(getYouTubeChannelId('https://www.youtube.com/c/coca-cola')); // 输出: coca-cola
console.log(getYouTubeChannelId('https://www.youtube.com/channel/UCosXctaTYxN4YPIvI5Fpcrw')); // 输出: UCosXctaTYxN4YPIvI5Fpcrw
console.log(getYouTubeChannelId('https://www.youtube.com/@coca-cola')); // 输出: coca-cola
console.log(getYouTubeChannelId('https://www.youtube.com/coca-cola')); // 输出: coca-cola
console.log(getYouTubeChannelId('https://www.youtube.com/@Coca-Cola/about')); // 输出: Coca-Cola
console.log(getYouTubeChannelId('https://youtube.com/c/coca-cola?foo=bar#section')); // 输出: coca-cola

思路拆解

正则的每个部分作用如下:

  • ^(?:https?:\/\/)?:匹配可选的HTTP/HTTPS协议,用非捕获分组避免多余的捕获结果
  • (?:www\.)?:匹配可选的www.前缀,同样用非捕获分组
  • youtube\.com\/:匹配YouTube域名,确保是目标网站的链接
  • (?:c\/|channel\/|@)?:匹配三种频道路径前缀(/c/、/channel/、/@),可选且不捕获,只保留后面的标识部分
  • ([^/?#]+):核心捕获组,匹配除了/(路径分隔符)、?(查询参数开始)、#(锚点开始)之外的所有字符,自动截断后面的附加路径或参数
  • /i:不区分大小写,兼容YouTube链接的大小写差异

可选优化:排除非频道链接

如果你需要避免误匹配视频、Shorts等非频道链接,可以给正则添加负向前瞻,排除常见的非频道路径:

const channelRegex = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/(?!watch|embed|shorts|playlist)(?:c\/|channel\/|@)?([^/?#]+)/i;

这个版本会跳过/watch、/embed、/shorts、/playlist开头的链接,只匹配频道类路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:16:05