Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从url的一部分保存字符串?_Javascript_Jquery - Fatal编程技术网

Javascript 如何从url的一部分保存字符串?

Javascript 如何从url的一部分保存字符串?,javascript,jquery,Javascript,Jquery,给定以下URL: https://example.com/test/results/?usp-custom-14=2015+2017&usp-custom-8=United-States 如何保存三个变量: var date1: "2015"; var date2: "2017"; var loc = "United States"; 注意:我们有两个日期,url2015+2017中有一个+符号,我们需要拆分它们。在urlUnited States中有一个破折号,我们需要它作为Uni

给定以下URL:

https://example.com/test/results/?usp-custom-14=2015+2017&usp-custom-8=United-States
如何保存三个变量:

var date1: "2015";
var date2: "2017";
var loc = "United States";
注意:我们有两个日期,url
2015+2017
中有一个
+
符号,我们需要拆分它们。在url
United States
中有一个破折号,我们需要它作为
United States

这就是我正在尝试的:

function getUrlVars() {
  var vars = [], hash;
  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  for(var i = 0; i < hashes.length; i++) {
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
  }
  return vars;
}
var dates = getUrlVars()["usp-custom-14"];
var loc = getUrlVars()["usp-custom-8"];
var dateSplit = dates.split("+");
var str=”https://example.com/test/results/?usp-custom-14=2015+2017和usp-custom-8=美国”;
var split=str.split('usp-custom-14=');
var firstDate=split[1]。split(+')[0];
var secondDate=split[1]。子字符串(split[1]。lastIndexOf(“+”)+1,split[1]。lastIndexOf(“&”);
var country=split[1]。子字符串(split[1]。lastIndexOf(“=”)+1,split[1]。长度-1)。替换('-','';
console.log(firstDate);
console.log(第二个日期);
控制台日志(国家)
var str=”https://example.com/test/results/?usp-custom-14=2015+2017和usp-custom-8=美国”;
var split=str.split('usp-custom-14=');
var firstDate=split[1]。split(+')[0];
var secondDate=split[1]。子字符串(split[1]。lastIndexOf(“+”)+1,split[1]。lastIndexOf(“&”);
var country=split[1]。子字符串(split[1]。lastIndexOf(“=”)+1,split[1]。长度-1)。替换('-','';
console.log(firstDate);
console.log(第二个日期);

控制台日志(国家)
您可以拆分
上的url,并使用
pop()
返回结果数组的最后一个成员,这将是整个查询字符串

从那里,您可以通过先在
&
上拆分它,然后在
=
上拆分它,将其拆分为键值对

我把它放在一个函数中,这样您就可以在需要时简单地执行
getParam(“我的url参数”)
。使用此选项,然后处理特定参数上的
+
-
,您应该能够非常轻松地获得所需的内容

它也应该在需要的地方重复使用

函数getParam(键){
//var url=window.location.href;(不适用于StackOverflow,但可用于实际环境)
变量url=”https://example.com/test/results/?usp-custom-14=2015+2017和usp-custom-8=美国”;
var querystring=url.split(“?”).pop();
var params={};
querystring.split(“&”).forEach((i)=>params[i.split(“=”[0]]]=i.split(“=”[1]);//创建键值对
返回参数[key]| | null;
}
var uspCustom14=getParam(“usp-custom-14”).split(“+”);
var date1=uspCustom14[0];
var date2=uspCustom14[1];
var country=getParam(“usp-custom-8”)。替换(/\-/g,”);

log(`date1:${date1},`,`date2:${date2},`,`Country:${Country}`)
您可以拆分
上的url,并使用
pop()
返回结果数组的最后一个成员,这将是整个查询字符串

从那里,您可以通过先在
&
上拆分它,然后在
=
上拆分它,将其拆分为键值对

我把它放在一个函数中,这样您就可以在需要时简单地执行
getParam(“我的url参数”)
。使用此选项,然后处理特定参数上的
+
-
,您应该能够非常轻松地获得所需的内容

它也应该在需要的地方重复使用

函数getParam(键){
//var url=window.location.href;(不适用于StackOverflow,但可用于实际环境)
变量url=”https://example.com/test/results/?usp-custom-14=2015+2017和usp-custom-8=美国”;
var querystring=url.split(“?”).pop();
var params={};
querystring.split(“&”).forEach((i)=>params[i.split(“=”[0]]]=i.split(“=”[1]);//创建键值对
返回参数[key]| | null;
}
var uspCustom14=getParam(“usp-custom-14”).split(“+”);
var date1=uspCustom14[0];
var date2=uspCustom14[1];
var country=getParam(“usp-custom-8”)。替换(/\-/g,”);

log(`date1:${date1},`,`date2:${date2},`,`Country:${Country}`)这将为您提供所需的内容,同时尽可能使其接近原始代码。可以安全地拆分包含“+”的字符串。您的“?”和“=”拆分顺序错误

function getUrlVars() {
  var vars = [], hash;  
  var hashes = window.location.href.split('?')[1];
  var params = hashes.split('&');    
  for(var i = 0; i < params.length; i++) {  
     hash = params[i].split('=');
     vars.push(hash[0]);
     vars[hash[0]] = hash[1];    
}
return vars;
}
var dates = getUrlVars()["usp-custom-14"];
var loc = getUrlVars()["usp-custom-8"];
var dateSplit = dates.split("+");
函数getUrlVars(){ var vars=[],散列; var hashes=window.location.href.split(“?”)[1]; var params=hashes.split('&'); 对于(var i=0;i
这将为您提供您想要的,同时尽可能使其接近您的原始代码。可以安全地拆分包含“+”的字符串。您的“?”和“=”拆分顺序错误

function getUrlVars() {
  var vars = [], hash;  
  var hashes = window.location.href.split('?')[1];
  var params = hashes.split('&');    
  for(var i = 0; i < params.length; i++) {  
     hash = params[i].split('=');
     vars.push(hash[0]);
     vars[hash[0]] = hash[1];    
}
return vars;
}
var dates = getUrlVars()["usp-custom-14"];
var loc = getUrlVars()["usp-custom-8"];
var dateSplit = dates.split("+");
函数getUrlVars(){ var vars=[],散列; var hashes=window.location.href.split(“?”)[1]; var params=hashes.split('&'); 对于(var i=0;i
可能重复的@Eddie它不是真正的重复,我已经提供了我对解决方案的看法,并且根据保存VAR和更新URL,我也有不同的需求。如果您正在寻找对现有解决方案的改进,请查看。@rob.m如果人们对您想说的话感到困惑,考虑一下问题的答案。可能第一个重复是来自<代码> <代码>埃迪的可能副本。它不是真正的复制品,我已经提供了我的解决方案,我也有不同的需求,保存VAR和更新URLIF,你正在寻找现有解决方案的改进。看一看。@罗布。如果人们对你想说的话感到困惑,请考虑澄清问题。可能是第一个重复。
function getUrlVars() {
  var vars = [], hash;  
  var hashes = window.location.href.split('?')[1];
  var params = hashes.split('&');    
  for(var i = 0; i < params.length; i++) {  
     hash = params[i].split('=');
     vars.push(hash[0]);
     vars[hash[0]] = hash[1];    
}
return vars;
}
var dates = getUrlVars()["usp-custom-14"];
var loc = getUrlVars()["usp-custom-8"];
var dateSplit = dates.split("+");