H5案例分享:js获取url参数
js获取url参数
这一期我们来分享一个小知识点:使用js获取url参数值。这次我们主要来讲一下其中最常用的两种方式:正则表达式法和split拆分法。
- 一、正则表达式法
function getQueryString(name)
{
var url = window.location.search;
var reg = new RegExp('(^|&)'+ name +'=([^&]*)(&|$)','i');
var r = url.substr(1).match(reg);
if (r != null) return decodeURI(r[2]); return null;
}
// 调用方法
console.log(getQueryString ('参数名1'));
console.log(getQueryString ('参数名2'));
console.log(getQueryString ('参数名3'));
其中正则表达式是var reg = new RegExp('(^|&)'+ name +'=([^&]*)(&|$)','i');这句代码的意思是:以&开始或直接以name开始,以&结束或直接结束,name的值是由0到多个不是&的字符组成,'i'是忽略大小写。
- 二、split拆分法
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]]=decodeURI(strs[i].split("=")[1]);
}
}
return theRequest;
}
var Request = new Object();
Request = getRequest();
// 调用方法
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数3 = Request['参数3'];
参数N = Request['参数N'];
三、说明
小编在网上看到很多这方面的demo基本上都是用unescape() 函数来获得的参数的,这时会出现当参数是中文时获取到的参数值是乱码。
出现这种问题是解决办法是先用encodeURI() 函数把URI 进行编码,调用获取到参数值后,在用decodeURI() 函数对获取的参数值解码。
实际上ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之,所以我这里采用的是decodeURI(),即使参数值是中文也能正常显示。
标签
关注微信号:h5-share,获取更多创意H5案例分享!也可访问H5案例分享网站www.h5anli.com,搜索查阅~
微信扫一扫
关注该公众号