Javascript:在URL中选择具有同一元素的多个实例的元素

Javascript:在URL中选择具有同一元素的多个实例的元素,javascript,Javascript,我需要从JS中的URL中检索一个值,我的问题是在这个URL中,元素用不同的值重复了至少两次。我需要的是最后一个 例如: 我想要的是“随机3”而不是“随机1” 我已经尝试过url.match(/。(\&|\?)元素1=(。?)\&/)[2]; 但它总是给我第一个:( 我无法更改url的编写方式,因为这是针对浏览器扩展的。从urlString.lastIndexOf(“&element1=”)和urlString.lastIndexOf(“?element1=”)中获取最小值(而不是-1),然后使用

我需要从JS中的URL中检索一个值,我的问题是在这个URL中,元素用不同的值重复了至少两次。我需要的是最后一个

例如: 我想要的是“随机3”而不是“随机1”

我已经尝试过url.match(/。(\&|\?)元素1=(。?)\&/)[2]; 但它总是给我第一个:(

我无法更改url的编写方式,因为这是针对浏览器扩展的。

urlString.lastIndexOf(“&element1=”)
urlString.lastIndexOf(“?element1=”)
中获取最小值(而不是-1),然后使用
urlString.substring

var ws = "http://randomsite.com/index.php?element1=random1&element2=random2&element1=random3",
    input = ws.split("?")[1].split("&"),
    dataset = {},
    val_to_find = "element1";

    for ( var item in input){
        var d = input[item].split("=");
        if (!dataset[d[0]]){  dataset[d[0]] = new Array(); dataset[d[0]].push(d[1]); }
        else{
            dataset[d[0]].push(d[1]);
        }
    }
    console.log("item: ", dataset[val_to_find][dataset[val_to_find].length -1]);
    return dataset[val_to_find][dataset[val_to_find].length -1];
或者,将字符串拆分为:

var parts = urlString.split(/[?&]/);
…这将为您提供:

[
    "http://randomsite.com/index.php",
    "element1=random1",
    "element2=random2",
    "element1=random3"
]
…然后从数组的末尾开始循环,查找以
元素=
开头的第一个条目,并获取
=
之后的位(再次使用
子字符串

你可以

for (var result, match, re = /[&?]element1=(.+?)(\&|$)/g; match = re.exec(url);) {
    result = match[1];
}

alert(result);

Id尝试保留重复元素的嵌套数组

 function parseQueryString() {
    var elements = {},
            query = window.location.search.substring(1),
            vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
       var pair = vars[i].split('='),
               key = decodeURIComponent(pair[0]),
               value = decodeURIComponent(pair[1]);

       if (elements.hasOwnProperty(key)) {
          elements[key].push(value);
       }
       else {
          elements[key] = [value];
       }
    }
 }

如果你愿意,我可以写一把小提琴。
{
   element1: [
      "hello",
      "more"
   ],
   element2:[
      "test"
   ]
}