Javascript 从具有相同参数的查询字符串中检索多个键/值
我试图从一个查询字符串中提取多个参数,其中参数具有相同的名称,在我的例子中是Javascript 从具有相同参数的查询字符串中检索多个键/值,javascript,Javascript,我试图从一个查询字符串中提取多个参数,其中参数具有相同的名称,在我的例子中是filter。我似乎只能使用以下方法访问过滤器的第一个实例,而且我还需要将键/值从冒号分隔符中拆分为一种更容易使用的格式,我不确定如何最好地使用这种格式。如果有人能给我指出正确的方向,我将不胜感激 myURL = example.com?someparam=test&filter=color:"GOLD"&filter=size:"10"; var getUrl
filter
。我似乎只能使用以下方法访问过滤器的第一个实例,而且我还需要将键/值从冒号分隔符中拆分为一种更容易使用的格式,我不确定如何最好地使用这种格式。如果有人能给我指出正确的方向,我将不胜感激
myURL = example.com?someparam=test&filter=color:"GOLD"&filter=size:"10";
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = urlParams,
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 : decodeURIComponent(sParameterName[1]);
}
}
};
var filters = getUrlParameter('filter');
console.log(filter);
// Outputs...
color:"GOLD"
myURL=example.com?someparam=test&filter=color:“GOLD”和filter=size:“10”;
var getUrlParameter=函数getUrlParameter(sParam){
var sPageURL=urlParams,
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i
无需重新发明车轮
已经有一个很好的图书馆:
const query=require('query-string'))
const url='someparam=test&filter=color:“GOLD”&filter=size:“10”;
const result=query.parse(url);
log(JSON.stringify(result));
输出
{"filter":["color:\"GOLD\"","size:\"10\""],"someparam":"test"}
输出:
{
color: "'GOLD'",
size: "'10'"
}
你看过吗?这能回答你的问题吗?
{
color: "'GOLD'",
size: "'10'"
}
myURL = `example.com?someparam=test&filter=color:"GOLD"&filter=size:"10"`;
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = myURL,
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
return sURLVariables.filter(function(filters){
return filters.includes(sParam);
}).map(function(filters){
sParameterName = filters.split('=');
if (sParameterName[0] !== undefined && sParameterName[0] === sParam && sParameterName[1] !== undefined) {
return decodeURIComponent(sParameterName[1]);
}
})
}
var filters = getUrlParameter('filter');
console.log(filters);