转载自: http://www.cnblogs.com/rubylouvre/archive/2010/06/09/1755051.html

在外国一博客看到一个很好的

 1 function parseURL(url) { 2     var a =  document.createElement('a'); 3     a.href = url; 4     return { 5         source: url, 6         protocol: a.protocol.replace(':',''), 7         host: a.hostname, 8         port: a.port, 9         query: a.search,10         params: (function(){11             var ret = {},12                 seg = a.search.replace(/^\?/,'').split('&'),13                 len = seg.length, i = 0, s;14             for (;i<len;i++) {15                 if (!seg[i]) { continue; }16                 s = seg[i].split('=');17                 ret[s[0]] = s[1];18             }19             return ret;20         })(),21         file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],22         hash: a.hash.replace('#',''),23         path: a.pathname.replace(/^([^\/])/,'/$1'),24         relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],25         segments: a.pathname.replace(/^\//,'').split('/')26     };27 }

  用法:

 1 var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); 2    3 myURL.file;     // = 'index.html' 4 myURL.hash;     // = 'top' 5 myURL.host;     // = 'abc.com' 6 myURL.query;    // = '?id=255&m=hello' 7 myURL.params;   // = Object = { id: 255, m: hello } 8 myURL.path;     // = '/dir/index.html' 9 myURL.segments; // = Array = ['dir', 'index.html']10 myURL.port;     // = '8080'11 myURL.protocol; // = 'http'12 myURL.source;   // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

  取得URL的参数,以对象形式返回!

 1 var getParam = function(path){ 2     var result = {},param = /([^?=&]+)=([^&]+)/ig,match; 3     while((match = param.exec(path)) != null){ 4         result[match[1]] = match[2]; 5     } 6     return result; 7 } 8   9 Object.keys = Object.keys || function(obj){10     var result = [];11     for(var i in obj){12         if(obj.hasOwnProperty(i)){13             result.push(i)14         }15     }16     return result;17 }18 var path = "http://tieba.baidu.com/f?ct=318767104&tn=baiduKeywordSearch&sc=1&pn=0&rn=50&lm=4&rs4=2&rs3=2&word=%D0%C2%BE%D3%D5%D1%C4%CB&frs=jpq";19  20 var r = getParam(path);21 alert(Object.keys(r))//ct,tn,sc,pn,rn,lm,rs4,rs3,word,frs

  

//2010.9.22更新function getParam(name){//获取参数值 by司徒正美    var sUrl = window.location.search.substr(1);var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"));return (r == null ? null : unescape(r[2]));}

  

[转]parseUrl函数相关推荐

  1. python正则匹配找到所有的浮点数_如何利用Python抓取静态网站及其内部资源

    遇到的需求 前段时间需要快速做个静态展示页面,要求是响应式和较美观.由于时间较短,自己动手写的话也有点麻烦,所以就打算上网找现成的. 中途找到了几个页面发现不错,然后就开始思考怎么把页面给下载下来. ...

  2. thinkphp v5.0.11漏洞_Thinkphp 5.0远程代码执行漏洞

    0x01 简叙本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版 ...

  3. webpack4+node合并资源请求, 实现combo功能(二十三)

    本文学习使用nodejs实现css或js资源文件的合并请求功能,我们都知道在一个复杂的项目当中,可能会使用到很多第三方插件,虽然目前使用vue开发系统或者h5页面,vue组件够用,但是有的项目中会使用 ...

  4. php 删除其他盘符,Linux_自动清除电脑垃圾及删除windows默认共享盘符的批处理bat,by:zuifeng258Windows在默认情况下 - phpStudy...

    自动清除电脑垃圾及删除windows默认共享盘符的批处理bat by:zuifeng258 Windows在默认情况下几个盘多是共享的,它们是隐藏的危险. 在dos下用命令"net shar ...

  5. golang学习笔记(进阶篇)

    四.Golang进阶部分(并发) 并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点.再快一点.Go语言在语言层面天生支持并发,充分利用现代C ...

  6. Discuz! 帖子外链自动添加nofollow的方法

    目录 用过论坛的童鞋们都知道,在帖子内容中经常会出现外部链接,或许演示地址的链接,外链出现的过多会导致网站权重降低,在此优化就需要给外链加上rel="nofollow"属性提高优化 ...

  7. html外链自动加nofollow,Discuz! 帖子外链自动添加nofollow的方法

    ,让系统自动把外链都加上nofollow属性,修改方法如下:, ,1. 打开目录source/function/function_discuzcode.php文件,查找parseurl函数,对照以下代 ...

  8. thinkphp日志泄漏漏洞_ThinkPHP漏洞分析与利用

    一.组件介绍 1.1 基本信息 ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和Ta ...

  9. ThinkPHP V5.0.5漏洞_ThinkPHP漏洞分析与利用

    一.组件介绍 1.1 基本信息 ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和Ta ...

最新文章

  1. 悬挑脚手架卸载钢丝绳要求_100m的悬挑脚手架技术交底
  2. ABAP 直接上传图片的函数
  3. leetcode 2. Add Two Numbers | 2. 两数相加(Java)
  4. 海天食品的java开发工作如何_再三个月就秋招了,我想找一份java开发工作,现在应该怎么准备一下?...
  5. Edge好用么?几条你不知道的Edge小技巧
  6. OpenShift 4 Tekton (4) - 使用Workspaces为包含Maven Build的Pipeline提速
  7. bzoj1426 收集邮票
  8. DataGrid控件(可以实现不刷新增加删除等操作)
  9. matlab 和 ampl 结合,AMPL和MATLAB结合使用示例
  10. 【python基础】h5py库的基本使用
  11. Arch Linux stc-isp-wine AUR 包
  12. Bootstrap实战 - 注册和登录
  13. netcfg.hlp 官方版
  14. Uri.parse()的各种用法
  15. 小智-微直播 使用教程
  16. DSP CCS12.00 芯片:TMS320F28335 ADC 的运用
  17. springboot+dubbo+tomcat部署出错问题
  18. slick轮播插件操作 记录
  19. 计算机操作系统pv实验,计算机操作系统PV操作例题.doc
  20. IE 浏览器中不能使remove删除节点的解决方法

热门文章

  1. 笔记本win7共享wifi操作说明
  2. agentzh 的 Nginx 教程(版本 2015.03.19) 第一篇
  3. Almost sorted interval
  4. Directx11教程(15) D3D11管线(4)
  5. 华硕服务器第三届“IT硬件平台搭建大赛”获奖方案
  6. 微服务架构 — 设计原则
  7. Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)
  8. OpenStack 实现技术分解 (6) 通用库 — oslo_log
  9. 神经网络结构设计指导原则——输入层:神经元个数=feature维度 输出层:神经元个数=分类类别数,默认只用一个隐层 如果用多个隐层,则每个隐层的神经元数目都一样...
  10. 使用Session服务未开启错误解决方案