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

JavaScript如何截取两个特定字符间的子串 实现URL参数提取

从URL查询串提取指定参数值的实现方法

方法1:使用原生URLSearchParams接口(推荐)

这是兼容性覆盖绝大多数现代浏览器、无需手动处理边界的最优方案,自动适配多参数、参数值编码、参数位置随机等场景:

const queryStr = "?retailerKey=A";
// 去除开头的?后传入构造函数
const searchParams = new URLSearchParams(queryStr.slice(1));
const targetVal = searchParams.get("retailerKey");
// 参数不存在时返回null,存在返回对应值
console.log(targetVal); // 输出 A

方法2:基于indexOf手动截取

如果需要兼容极端老旧环境,可以基于indexOf拓展实现,核心是先定位参数名+等号的位置,再向后找值的终止边界:

const queryStr = "?retailerKey=A";
const paramName = "retailerKey";
const paramPrefix = `${paramName}=`;
const prefixPos = queryStr.indexOf(paramPrefix);
// 匹配不到参数直接返回
if (prefixPos === -1) {
  console.log("参数不存在");
} else {
  // 计算值的起始位置:前缀位置 + 前缀长度
  const valStart = prefixPos + paramPrefix.length;
  // 值的终止位置为下一个&的位置,没有则取字符串末尾
  let valEnd = queryStr.indexOf("&", valStart);
  valEnd = valEnd === -1 ? queryStr.length : valEnd;
  const targetVal = queryStr.slice(valStart, valEnd);
  console.log(targetVal); // 输出 A
}

方法3:正则匹配实现

适合快速实现简单场景的参数提取,注意匹配后要做URL解码处理特殊字符:

const queryStr = "?retailerKey=A";
const matchRes = queryStr.match(/[?&]retailerKey=([^&]*)/);
const targetVal = matchRes ? decodeURIComponent(matchRes[1]) : null;
console.log(targetVal); // 输出 A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:39:02