需要功能编辑
Function edit needed
目前,以下代码接受一个 href 并将稍后调用的所有参数排列起来:
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(
/[?&]+([^=&]+)=([^&]*)/gi,
function (m, key, value) {
vars[key] = value;
});
return vars;
}
这与 href 一起工作,href 的参数设置类似于 url 中的 parameter=value。我在网上找到了这个函数,但不了解很多 javascript 但需要对其进行编辑,而不是 = 作为参数和值之间的分隔因子,而是 %3A 。因此,例如 parameter%3Avalue 由于我正在处理的网站上的格式不同。我不确定这个函数是如何工作的,所以我很难编辑它。感谢您的帮助。
/[?&]+([^=&]+)%3A([^&]*)/gi
例如:?parameter%3Avalue
/([^=&]+)%3A([^&]*)/gi
例如:参数 %3Avalue
它正在使用匹配字符串一部分的正则表达式。 replace 方法将用第二个参数(在您的示例中是一个函数)替换匹配部分。下次您可以使用正则表达式测试器,例如https://regex101.com
如果您需要解码格式的多个项目,您应该首先尝试将 decodeURIComponent 应用于 href 字符串。如果它只是您想要解码的 %3A ,那么首先解码它可能是最简单的(这样字符串看起来确实使用 =
符号)。
function getUrlVars() {
var vars = {};
var partsWithEqSign = window.location.href.replace(/%3A/g, "=");
var parts = partsWithEqSign.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
顺便说一下,使用的这段代码涉及正则表达式,这是 JavaScript 中最难的概念之一,但一旦你学会了它们就会非常有用。
目前,以下代码接受一个 href 并将稍后调用的所有参数排列起来:
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(
/[?&]+([^=&]+)=([^&]*)/gi,
function (m, key, value) {
vars[key] = value;
});
return vars;
}
这与 href 一起工作,href 的参数设置类似于 url 中的 parameter=value。我在网上找到了这个函数,但不了解很多 javascript 但需要对其进行编辑,而不是 = 作为参数和值之间的分隔因子,而是 %3A 。因此,例如 parameter%3Avalue 由于我正在处理的网站上的格式不同。我不确定这个函数是如何工作的,所以我很难编辑它。感谢您的帮助。
/[?&]+([^=&]+)%3A([^&]*)/gi
例如:?parameter%3Avalue
/([^=&]+)%3A([^&]*)/gi
例如:参数 %3Avalue
它正在使用匹配字符串一部分的正则表达式。 replace 方法将用第二个参数(在您的示例中是一个函数)替换匹配部分。下次您可以使用正则表达式测试器,例如https://regex101.com
如果您需要解码格式的多个项目,您应该首先尝试将 decodeURIComponent 应用于 href 字符串。如果它只是您想要解码的 %3A ,那么首先解码它可能是最简单的(这样字符串看起来确实使用 =
符号)。
function getUrlVars() {
var vars = {};
var partsWithEqSign = window.location.href.replace(/%3A/g, "=");
var parts = partsWithEqSign.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
顺便说一下,使用的这段代码涉及正则表达式,这是 JavaScript 中最难的概念之一,但一旦你学会了它们就会非常有用。