这里,我学习的是使用正则的方法来获得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方法来匹配,获得的是一个数组,数组如下:
然后使用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);