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

如何用JavaScript正则表达式提取URL中特定格式的字符串

JavaScript正则提取URL路径中特定19位字符串解决方案

需求回顾

需要从URL中提取19位长度、以A开头的字符串,要求:

  • 不能依赖固定路径段(如/abc/)匹配
  • 排除查询参数中类似格式的字符串

正则表达式方案

使用带断言的正则精准定位路径中的目标字符串:

const regex = /(?<=\/)A[A-Z0-9]{18}(?=\/|$|\?)/;

正则解释

  • (?<=\/):正向反向预查,确保目标字符串前是/,说明它处于URL路径段中,而非查询参数内
  • A[A-Z0-9]{18}:匹配以A开头,后续18位大写字母/数字的字符串,总长度恰好19位
  • (?=\/|$|\?):正向预查,确保目标字符串后是/(下一路径段)、URL结尾或?(查询参数起始),进一步锁定路径位置

使用示例

const urls = [
  "https://example.com/abc/A3V5C96RVH3W9JS2TUP?parameters=abc",
  "https://example.com/pqrs/A3V5C96WVA3W9JS2TUP?parameters=abc",
  "https://example.com/u/click?_t=A20e1ffb2989453eaf5755b1940a5e02&_m=3983d6e6519b4de899be964096507c96&_e=JCanVuhVZwIxCtu4vrMeoOJkD73_W5aswybJFJ3oCDoAS583vt8rVhUPdMoKy87fF6Ku92ACv9F26yy-evyg0SK0D9ATYKemg0C14JezMrDy3NYAJfTg3FwZe2tmQ5bmqX-zmARM2j3VeWs8Xslv8JDIec4RoXfWbDGZ2akjm3Ws5iLpeYTCi-NgfBCnWHoIQejtPAIXNkyfOVsjmCvZFdZC8ZgaGqX6sMqa9Pe-bDfph3DMoE2zowCsqiEQYrG92Sq8ISkc0hu9HNpqtQ7IpcBSSKf66ZXuSK3uifuv_emnbiBfJD1qtbioQe7ZRKyM3f6cwiifcp4FGGcJVDJFZXWFeKBM_z0bsp12-cX2j81sYlkcQ_WDeLHE_xEJE0BogYMjaE6DbGI77Tdxy2M3dzYXVvCTVhoQkcZ6DTiRF5DA_i6C0WMWX2AfKnCZL3xt_MCXfqf5Vd99H0sr4iJ1GHhpit3DcrRpe18nwBLzi5qCpZ2XCvvbjlPBsCvWm8U7GbmDw7T7etiyuCnPlR299ZpQVLHskMSnnhGkt71fWTlBhOndKv5TKJzpk8iNqksJtrbhUBa9rapjLZbwwciSZeoau0BD1ER0wAUvvHRS-NUr8ySJ5eH6D2NEe3npGaG0GSETarAqnirs3qvUIl6xseZ94AGUk4bnD2wdsQ4LcbsC50JXd7gAEjcEBEMKUFsyZR2zIkB-LWQmGylUxwDlxZU1Z-Kq7MHlfqx9HHaexEq8%3D"
];

urls.forEach(url => {
  const match = url.match(regex);
  console.log(`URL: ${url.slice(0, 50)}...`); // 截断长URL方便查看
  console.log(`提取结果: ${match ? match[0] : '无匹配'}`);
});

执行结果

  • 第一个URL:提取到A3V5C96RVH3W9JS2TUP
  • 第二个URL:提取到A3V5C96WVA3W9JS2TUP
  • 第三个URL:无匹配(目标字符串位于查询参数中,不满足路径位置断言)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:32:34