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

如何用JavaScript正则提取k=与&之间的目标字符串?

提取iframe src中k参数的值(正则表达式实现)

我懂你现在的困扰:原来用substring的方法没法正确拿到想要的k参数值,需要改用JavaScript正则表达式来搞定。先聊聊原来代码的问题:你用lastIndexOf("k=")+1,这里k=是两个字符,偏移量应该是+2才对;而且lastIndexOf("&")找的是整个字符串里最后一个&,这样会把k参数后面所有内容都包含进去,自然得不到正确结果。

下面用正则表达式来解决这个问题,直接精准匹配出k参数的值:

var str = '<iframe src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LekMVAUAAAAAPDp1Cn7YMzjZynSb9csmX5V4a9P&amp;co=aHR0cHM6Ly93d3cub21lZ2xlLmNvbTo0NDM.&amp;hl=en&amp;v=v1526884278587&amp;size=normal&amp;cb=jssxsvw1wcmm" role="presentation" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox" style="outline: 1px solid blue;" width="304" height="78" frameborder="0"></iframe>';

// 正则匹配k=后面直到第一个&的内容(兼容转义的&amp;)
var kRegex = /k=([^&]+)/;
var matchResult = str.match(kRegex);

if (matchResult) {
  var targetValue = matchResult[1];
  console.log(targetValue); // 输出预期结果:6LekMVAUAAAAAPDp1Cn7YMzjZynSb9csmX5V4a9P
} else {
  console.log("没有找到目标k参数");
}

正则表达式说明:

  • k=:精准匹配参数名的字面量
  • ([^&]+):这是一个捕获组,[^&]表示匹配任意不是&的字符,+表示匹配一次或多次,这样就能精准拿到k参数值,直到遇到下一个&(不管是原生的&还是转义后的&amp;里的&)为止。

这个方法既简洁又准确,完美解决你提取特定参数值的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:09:56