?id=001&from=1
我用react
的this.props.location.search
已经取出主要部分,不太懂正则,求教
var reg = /([^?=&]+)=([^?=&]*)/g,
str = window.location.href,
tempObj = {};
str.replace(reg,function(str,key,val){
var k = decodeURIComponent(key),
v = decodeURIComponent(val);
tempObj[k] = v || "";
return str;
});
location里边不应该还有一个query的吗?难道我记混乱了。。。
可以考虑以下做法:
JSON.parse(
'{' +
locatio.search
.replace('?', '')
.replace(/&/g, ',')
.replace(/(\w+)=?(\w+|)/ig, '"$1":"$2"') + '}')
有可能出现:"?a=1&b=2&c=",甚至 "?a=1&b=2&c"
var parms = location.search.replace("?","").split("&");
var json = {};
for(let i = 0, n = parms.length; i<n; i++ ){
let t = parms[i].split("=");
json[ t[0] ] = t[1];
}
楼上JSON.parse的方法挺方便的,不过要考虑ie8-兼容问题,我写的这种不需要考虑兼容但是要麻烦点
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1]);
}
}
return theRequest;
}
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
function get_param(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"),
r = window.location.search.substr(1).match(reg);
if(r!=null)return decodeURI(r[2]); return null;
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决