JS中获取URL的参数的方法

这里,我学习的是使用正则的方法来获得URL的参数

函数的方法如下:

<a href="www.baidu.com">百度</a>
<script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js'></script>
<script>
$.extend({
getQueryString:function(name){
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
})
var age = $.getQueryString("age");
alert(age);//13

在这里,window.location.search获得的是地址栏?之后的参数,使用match方法来匹配,获得的是一个数组,数组如下:

JS中获取URL的参数的方法

然后使用unescape()方法来解析数组的第二个值,就得到了当前参数对应的值。

当我们的参数是中文的时候,这个时候,unescape()方法的用处就体现出来了:demo如下:

     <a id="aa" href="#">跳转到demo6页面</a>
<script>
aa.onclick= function(){
//第一种方法:window.location.href = "demo6.html?age=13&name="+escape('张三');
//第二种方法如下:
window.location.href = "demo6.html?age=13&name="+encodeURIComponent('张三');
console.log(encodeURIComponent('张三'));
}

demo6的页面:

<a href="www.baidu.com">百度</a>
<script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js'></script>
<script>
$.extend({
getQueryString:function(name){
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
//第一种方法:if (r != null) return unescape(r[2]);
//第二种方法如下:
if (r != null) return decodeURIComponent(r[2]);
return null;
}
})
var age = $.getQueryString("name");
alert(age);
上一篇:微信和QQ内置浏览器为什么老是弹停止访问该网页,微信域名被屏蔽的解决办法


下一篇:Vue — 微信公众号内置h5支付相关