Javascript 使用查询参数重新生成url
我有一个网址:Javascript 使用查询参数重新生成url,javascript,jquery,Javascript,Jquery,我有一个网址: http://www.example.com/gclid/YH67/utm/2908321/id/test 我想使用带有查询参数的url: http://www.example.com/?gclid=YH67&utm=2908321&id=test 我知道的是主urlhttp://www.example.com/ 我想让url具有正确的参数(我不知道key/value的具体参数) 下面是一个简单的例子,我看到它是有效的 if (window.location.
http://www.example.com/gclid/YH67/utm/2908321/id/test
我想使用带有查询参数的url:
http://www.example.com/?gclid=YH67&utm=2908321&id=test
我知道的是主urlhttp://www.example.com/
我想让url具有正确的参数(我不知道key/value的具体参数)
下面是一个简单的例子,我看到它是有效的
if (window.location.href === "http://www.example.com") {
url = "http://www.example.com?gclid=test";
window.history.pushState("", "", url);
}
试试这个-
function makeURL(url)
{
var mainUrl = "http://www.example.com/";
var urlArr = url.split(mainUrl);
if(urlArr[1] && urlArr[1] !== "")
{
// assuming url will always be a perfect url
var queryPoints = urlArr[1].split("/");
var queryStr = "?";
for(var i = 0; i < queryPoints.length; i+=2)
{
var key = queryPoints[i];
var value = queryPoints[i+1];
if(i+2 == queryPoints.length)
queryStr += key+ "=" + value;
else
queryStr += key+ "=" + value + "&";
}
var queriedUrl = mainUrl + queryStr;
console.log(queriedUrl);
return queriedUrl;
}
return url;
}
函数makeURL(url)
{
var mainUrl=”http://www.example.com/";
var urlArr=url.split(mainUrl);
如果(urlArr[1]&&urlArr[1]!=“”)
{
//假设url始终是一个完美的url
var queryPoints=urlArr[1]。拆分(“/”;
var queryStr=“?”;
对于(变量i=0;i
像这样调用上面的函数-makeURL(“http://www.example.com/gclid/YH67/utm/2908321/id/test)
。它将以查询字符串格式返回数据 试试这个-
function makeURL(url)
{
var mainUrl = "http://www.example.com/";
var urlArr = url.split(mainUrl);
if(urlArr[1] && urlArr[1] !== "")
{
// assuming url will always be a perfect url
var queryPoints = urlArr[1].split("/");
var queryStr = "?";
for(var i = 0; i < queryPoints.length; i+=2)
{
var key = queryPoints[i];
var value = queryPoints[i+1];
if(i+2 == queryPoints.length)
queryStr += key+ "=" + value;
else
queryStr += key+ "=" + value + "&";
}
var queriedUrl = mainUrl + queryStr;
console.log(queriedUrl);
return queriedUrl;
}
return url;
}
函数makeURL(url)
{
var mainUrl=”http://www.example.com/";
var urlArr=url.split(mainUrl);
如果(urlArr[1]&&urlArr[1]!=“”)
{
//假设url始终是一个完美的url
var queryPoints=urlArr[1]。拆分(“/”;
var queryStr=“?”;
对于(变量i=0;i
像这样调用上面的函数-
makeURL(“http://www.example.com/gclid/YH67/utm/2908321/id/test)
。它将以查询字符串格式返回数据 下面是一个更新,它将给定的url转换为带有查询字符串的url:
var url='1〕http://www.example.com/gclid/YH67/utm/2908321/id/test';
var域http://www.example.com/';
函数extractParams(url、域){
var params=url.replace(域“”).split(“/”);
var newparams={};
对于(var i=0;i,这里有一个更新,将给定url转换为带有查询字符串的url:
var url='1〕http://www.example.com/gclid/YH67/utm/2908321/id/test';
var域http://www.example.com/';
函数extractParams(url、域){
var params=url.replace(域“”).split(“/”);
var newparams={};
对于(var i=0;iSo您希望将URL拆分,以便原始字符串中显示为key/value
的每个键/值对都将是一个查询参数,例如?key=value
。是否正确?@Alex是的。我尝试使用/拆分URL并连接各个部分,但没有找到一种方法使您希望拆分URL原始字符串中显示为key/value
的每个键/值对都将是一个查询参数,例如?key=value
。是否正确?@Alex是的,就是这样。我尝试使用/拆分url并连接部分,但没有找到工作的方法。谢谢。很好,但我不知道确切的位置。例如,如果我有一个位置在url中查询param或nothing当我说positions时,我收回的是key/values参数的数量。这很好。这个代码段只假设第一个参数是key,第二个是value。例如,/key/value/key2/value2/key3/value3…
等等。这与数字无关。您可以在url中有任意数量的键值对。这应该有效。我想现在它不起作用了。如果我尝试测试它,它会给我带有/Thank you的url。很好,但我不知道确切的位置。例如,如果我在url中有一个查询参数或什么都没有,当我说位置时,我会返回键值对的数量。更新代码以进行检查对于边缘条件。这很好。此代码段只假设第一个是键,第二个是值。例如,/key/value/key2/value2/key3/value3…
等等。这是数字独立的。url中可以有任意数量的键值对。这应该可以工作。我认为现在它不工作。如果我尝试测试它,它会给出我的网址与/