使用 Javascript 引用 URL 查询字符串参数

发布于 2024-12-08 08:27:32 字数 412 浏览 0 评论 0原文

我有一个带有一堆查询字符串参数的引用 URL。到目前为止,这是我的代码:

var refURL=document.referrer;
var stock=refURL.substring(refURL.indexOf('?')+7, refURL.length);

当我的 URL 末尾只有 1 个查询字符串参数时,此方法运行良好。现在我有 3 个。我想替换第二行,以便子字符串停在下一个“&”处。

var stock=refURL.substring(refURL.indexOf('?')+7, ????);

从那里,我想要另一行捕获下一个参数并将其存储为变量。但我不能使用indexOf,那么我如何从“&”开始我在哪里停下来的?

谢谢!

I have a referring URL with a bunch of query string parameters. Here's my code so far:

var refURL=document.referrer;
var stock=refURL.substring(refURL.indexOf('?')+7, refURL.length);

This worked fine when I only had 1 query string parameter at the end of my URL. Now I have 3. I'd like to replace the second line so that the substring stops at the next "&".

var stock=refURL.substring(refURL.indexOf('?')+7, ????);

From there, I'd like to have another line that captures the next parameter and stores it as a variable. I can't use indexOf for that though, so how do I start from the "&" where I left off?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉南桥 2024-12-15 08:27:32

有很多更好的方法来执行查询字符串,因此我将讨论 indexOf。它实际上需要第二个可选参数 fromIndex。

var str = "com/?test=0&i=2&me=3&u=56";
var prevIndx = str.indexOf('?');
var query = {}, arr, result, next;

while(prevIndx != -1) {
    next = str.indexOf('&', prevIndx+1);
    if (next == -1) next = str.length;
    result = str.substring(prevIndx+1, next);
    arr = result.split('=');
    console.log(prevIndx)    
    query[arr[0]] = arr[1];
    prevIndx = str.indexOf('&', prevIndx+1);
}

该代码并不漂亮,但它演示了 indexOf 的 fromIndex 参数

There's much better ways to do query strings, so I'll discuss indexOf. It actually takes a second optional parameter of fromIndex.

var str = "com/?test=0&i=2&me=3&u=56";
var prevIndx = str.indexOf('?');
var query = {}, arr, result, next;

while(prevIndx != -1) {
    next = str.indexOf('&', prevIndx+1);
    if (next == -1) next = str.length;
    result = str.substring(prevIndx+1, next);
    arr = result.split('=');
    console.log(prevIndx)    
    query[arr[0]] = arr[1];
    prevIndx = str.indexOf('&', prevIndx+1);
}

That code isn't pretty, but it demonstrates the fromIndex parameter of indexOf

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文