微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript解析URL方法详解

URL : 统一资源定位符 (Uniform Resource Locator,URL)

完整的URL由这几个部分构成: scheme://host:port/path?query#fragment

scheme = 通信协议 (常用的http,ftp,maito等) host = 主机 (域名或IP) port = 端口号 path = 路径

query = 查询 可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用”&”符号隔开,每个参数的名和值用”=”符号隔开。

fragment = 信息片断 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

对于这样一个URL

我们可以用javascript获得其中的各个部分 1,window.location.href 整个URl字符串(在浏览器中就是完整的地址栏)

2,window.location.protocol URL 的协议部分 本例返回值:http:

3,window.location.host URL 的主机部分 本例返回值:www.master8.net

4,window.location.port URL 的端口部分 如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符 本例返回值:”"

5,window.location.pathname URL 的路径部分(就是文件地址) 本例返回值:/seo/

6,window.location.search 查询(参数)部分 除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值 本例返回值:?ver=1.0&id=6

7,window.location.hash 锚点 本例返回值:#imhere

8. url参数值

方法一:正则分析法

代码如下:
nescape(r[2]); return null; }

方法二:采用split拆成数组

代码如下:
获取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]]=unescape(strs[i].split("=")[1]); } } return theRequest; }

方法很简单,却是很实用,这里列出了2种自己常用的方法,小伙伴们有不同的方法还请告之,本文持续更新。大家共同进步

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐