目前搜集到两种。
- 使用正则匹配的方法
function GetQueryString(name){
var reg = new RegExp("\\b"+ name +"=([^&]*)");
var r = location.href.match(reg);
if (r!=null) return r[1];
}
- 通过循环逐个查找的方法
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(pair[0] == variable){return pair[1];}
}
}
我一般用第一种。 如果这个url被编码过的话可能&变成了%之类的玩意,那么按&来分割就不行了。不过可以用decodeURIComponent先解码再处理。看实际需求,如果你的url可能被编码就加上decodeURIComponent。
网友评论