我有一个带有一堆查询字符串参数的引用网址。到目前为止,这是我的代码:
var refURL=document.referrer;
var stock=refURL.substring(refURL.indexOf('?')+7, refURL.length);
当我在URL的末尾只有1个查询字符串参数时,这很好用。现在我有3.我想替换第二行,以便子串在下一个“&”处停止。
var stock=refURL.substring(refURL.indexOf('?')+7, ????);
从那里开始,我想要另一条线来捕获下一个参数并将其存储为变量。我不能使用indexOf,所以如何从“&”开始我离开的地方?
谢谢!
答案 0 :(得分: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参数