获取包含 javascript 的所有字符的查询字符串参数
Get query string parameters including all characters with javascript
我需要通过名称获取查询字符串参数。
我的参数包括所有类型的字符,包括“=”符号。
这是一个例子:
我试过了:
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
但它用空格替换了“+”号:
"Code":"Ippr7HP/Fad2q3kKMehQtVYnbFcZp h4ECS RCQmN KrcAM8N4tdeNciNEXlwkhnjF3tZgez1/a1Ca1018uXpodGEnPcyTJzsupjsfuSmyuS1hoRXY04wKLgiyW031aLAYmua8yXLDdghgjo 0s7SUD7LWFMapMP8b3eN//ycbe1QNm6RVc7ahMs77ng6i6p6MScBefU/Rnj5ME7ly7tqw==
我试过了:
function getParameterByName(key) {
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[key];
}
但这不包括“=”符号...
有什么建议吗?
你的第二次尝试已经足够接近了,你只需要在 .split('=')
之后加入回值部分
function getParameterByName(parameterName) {
var query = window.location.search.substring(1);
var queryParameters = {};
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var keyValue = vars[i].split('=');
var key = keyValue[0];
var value = keyValue.slice(1).join('=');
queryParameters[decodeURIComponent(key)] = decodeURIComponent(value);
}
return queryParameters[parameterName]
}
我需要通过名称获取查询字符串参数。
我的参数包括所有类型的字符,包括“=”符号。
这是一个例子:
我试过了:
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
但它用空格替换了“+”号:
"Code":"Ippr7HP/Fad2q3kKMehQtVYnbFcZp h4ECS RCQmN KrcAM8N4tdeNciNEXlwkhnjF3tZgez1/a1Ca1018uXpodGEnPcyTJzsupjsfuSmyuS1hoRXY04wKLgiyW031aLAYmua8yXLDdghgjo 0s7SUD7LWFMapMP8b3eN//ycbe1QNm6RVc7ahMs77ng6i6p6MScBefU/Rnj5ME7ly7tqw==
我试过了:
function getParameterByName(key) {
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[key];
}
但这不包括“=”符号...
有什么建议吗?
你的第二次尝试已经足够接近了,你只需要在 .split('=')
function getParameterByName(parameterName) {
var query = window.location.search.substring(1);
var queryParameters = {};
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var keyValue = vars[i].split('=');
var key = keyValue[0];
var value = keyValue.slice(1).join('=');
queryParameters[decodeURIComponent(key)] = decodeURIComponent(value);
}
return queryParameters[parameterName]
}