获取url中的参数

获取url?后的参数

location对象 含有当前URL的信息. 属性 href 整个URL字符串.
protocol 含有URL第一部分的字符串,如http:
host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
hostname 包含URL中主机名的字符串.如http://www.cenpok.net ;
port 包含URL中可能存在的端口号字符串.
pathname URL中"/"以后的部分.如~list/index.htm
hash "#"号(CGI参数)之后的字符串.
search "?"号(CGI参数)之后的字符串.
  • 正则法
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
  • spit拆分
var query = location.search;     //获取location的search属性,保存在search中
  var theRequest = new Object();      //创建空对象
    if (query.indexOf("?") != -1) {      //如果query不是空字符串
        var str = query.substr(1);          
        strs = str.split("&");               //将当前元素值按=切割,保存在strs中
        for(var i = 0; i < strs.length; i ++) {
	        //unescape函数见后面
            theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); //向theRequest中添加一个元素,属性名为strs[i].split("=")[0],值为strs[i].split("=")[1]
        }
    }
  • 正则
function GetQueryString(name) {  
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");  
    var r = window.location.search.substr(1).match(reg);  //获取url中"?"符后的字符串并正则匹配
    var context = "";  
    if (r != null)  
         context = r[2];  
    reg = null;  
    r = null;  
    return context == null || context == "" || context == "undefined" ? "" : 			context;  
}
alert(GetQueryString("q"));
  • 单个参数获取
function GetRequest() {
   var url = location.search; //获取url中"?"符后的字串
   if (url.indexOf("?") != -1) {    //判断是否有参数
      var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
      strs = str.split("=");   //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
      alert(strs[1]);          //直接弹出第一个参数 (如果有多个参数 还要进行循环的)
   }
}

unescape() 函数

该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

其他参数获取

alert(window.location.pathname);//设置或获取对象指定的文件名或路径。
alert(window.location.href);//设置或获取整个 URL 为字符串。
alert(window.location.port);//设置或获取与 URL 关联的端口号码。
alert(window.location.protocol);//设置或获取 URL 的协议部分。
alert(window.location.hash);//设置或获取 href 属性中在井号“#”后面的分段。
alert(window.location.host);//设置或获取 location 或 URL 的 hostname 和 port 号码。
alert(window.location.search);//设置或获取 href 属性中跟在问号后面的部分。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值