Javascript 如何从url的一部分保存字符串?
给定以下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
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
中有一个破折号,我们需要它作为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("+");