gpt4 book ai didi

javascript - 在 Javascript 中获取 URL 参数不适用于 urlencoded '&'

转载 作者:行者123 更新时间:2023-11-29 10:09:09 25 4
gpt4 key购买 nike

我想从 Javascript 的 URL 中读取一个获取参数。我找到了 this

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
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 : sParameterName[1];
}
}
};

问题是,我的参数是这样的:

iFZycPLh%Kf27ljF5Hkzp1cEAVR%oUL3$Mce&@XFcdHBb*CRyKkAufgVc32!hUni

我已经制作了 urlEncode,所以它是这样的:

iFZycPLh%25Kf27ljF5Hkzp1cEAVR%25oUL3%24Mce%26%40XFcdHBb*CRyKkAufgVc32!hUni

但是,如果我调用 getUrlParameter() 函数,我只会得到这样的结果:

iFZycPLh%Kf27ljF5Hkzp1cEAVR%oUL3$Mce

有谁知道我该如何解决这个问题?

最佳答案

您需要在 sParameterName[0]sParameterName[1] 上调用 decodeURIComponent,而不是在整个 search 上调用。子串(1)).

(即在它的组件上)

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;

for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');

var key = decodeURIComponent(sParameterName[0]);
var value = decodeURIComponent(sParameterName[1]);

if (key === sParam) {
return value === undefined ? true : value;
}
}
};

zakinster 对您链接到的答案的评论中提到了这一点。

关于javascript - 在 Javascript 中获取 URL 参数不适用于 urlencoded '&',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36870112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com