1

我有一个带有一堆查询字符串参数的引用 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,那么我该如何从我离开的“&”开始呢?

谢谢!

4

1 回答 1

1

查询字符串有很多更好的方法,所以我将讨论 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 参数

于 2011-10-05T15:50:57.877 回答