在JavaScript中解析查询字符串
可能重复:
我怎样才能得到查询字符串值?
我需要解析查询字符串www.mysite.com/default.aspx?dest=aboutus.aspx
。 如何在JavaScript中获得dest
变量?
这是一种在JavaScript中解析查询字符串的快捷方法:
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
console.log('Query variable %s not found', variable);
}
现在请求page.html?x = Hello :
console.log(getQueryVariable('x'));
function parseQuery(queryString) {
var query = {};
var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
}
return query;
}
将查询字符串转换为对象{hello: 1, another: 2}
如hello=1&another=2
。 从那里,很容易提取你需要的变量。
也就是说,它不处理诸如"hello=1&hello=2&hello=3"
数组情况。 为了处理这个问题,你必须在添加对象之前检查你创建的对象的属性是否存在,并将它的值转换为一个数组,并推送任何附加位。
您也可以使用Rodney Rehm出色的URI.js库。 就是这样:-
var qs = URI('www.mysite.com/default.aspx?dest=aboutus.aspx').query(true); // == { dest : 'aboutus.aspx' }
alert(qs.dest); // == aboutus.aspx
并解析当前页面的查询字符串: -
var $_GET = URI(document.URL).query(true); // ala PHP
alert($_GET['dest']); // == aboutus.aspx
链接地址: http://www.djcxy.com/p/17593.html