【发布时间】:2012-07-31 23:20:17
【问题描述】:
如何通过 POST 方法提取 javascript 中的 URL 参数?
例如: 本地主机:8080/file.html/a/30/b/40
a 和 b 将是键,而 30 和 40 将是这些键的值
提前致谢!
【问题讨论】:
标签: javascript url post parameters
如何通过 POST 方法提取 javascript 中的 URL 参数?
例如: 本地主机:8080/file.html/a/30/b/40
a 和 b 将是键,而 30 和 40 将是这些键的值
提前致谢!
【问题讨论】:
标签: javascript url post parameters
你是说 GET 吗?
file.html?a=30&b=40
从这个网址可以得到如下参数:
var param = {};
var s = window.location.search.substring(1).split('&');
for (var i = 0; i < s.length; ++i) {
var parts = s[i].split('=');
param[parts[0]] = parts[1];
}
console.log(param);
据我所知,您提供的 URL 不必与 POST 做任何事情,但如果您可以将其放入 JavaScript 变量中,则可以这样做:
var url = "file.html/a/30/b/40";
var param = {};
var parts = url.split("/");
for (var i = 1; i < parts.length; i += 2) {
param[parts[i]] = parts[i+1];
}
console.log(param);
【讨论】:
使用这样的正则表达式怎么样?
var url = document.URL; // get the current URL
var matches = url.match(/.*\/a\/(\d+)\/b\/(\d+)/); // match it with a regex
var a = matches[1]; // the "a" number (as string)
var b = matches[2]; // the "b" number (as string)
请注意,match 方法返回一个列表,其中第一个元素是整体匹配,其余项目是捕获的元素,即正则表达式模式的两个 (\d+) 部分。这就是为什么这个 sn-p 使用 matches[1] 和 matches[2] 而忽略 matches[0]。
【讨论】: