如何将URL字符串划分为多个部分并使用jquery插入到变量中

时间:2016-09-15 17:47:27

标签: javascript jquery html

我有一个网址:

http://example.org/collections/inventory/cf-size-m+cf-type-capri+cf-vendor-manduka 

我使用此脚本获取URL参数并将其插入变量:

 <script>      
 var getUrlParameter2 = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
};
var name = getUrlParameter2('myvar');  
             $("#Inventory").html(name);                          
      document.write('<p>URL: '+name+'</p>');
      </script> 

当我有这样的事情时它会起作用:

`http://example.org/collections/inventory/?myvar=resultsblabla`

回到上面的网址:

http://example.org/collections/inventory/cf-size-m+cf-type-capri+cf-vendor-manduka

我希望变量cf-size的位置和值m的所在位置等等。

如果不清楚,请告诉我,以便我可以再次修改问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用以下javascript代码执行此操作:

var url = "http://example.org/collections/inventory/cf-size-m+cf-type-capri+cf-vendor-manduka";

var lstIdxOfSlash = url.lastIndexOf("/");
var paramPart = url.substring(lstIdxOfSlash + 1);
var paramValArray = paramPart.split("+");

var keyValPair = {};

for (var i = 0; i < paramValArray.length; i++) {

  var lstIdxOfDash = paramValArray[i].lastIndexOf("-");
  
  var key = paramValArray[i].substring(0,lstIdxOfDash);
  var val = paramValArray[i].substring(lstIdxOfDash+1);
                                       
  keyValPair[key] = val;                                 
}

console.log(keyValPair);