博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript解析URL
阅读量:6965 次
发布时间:2019-06-27

本文共 1490 字,大约阅读时间需要 4 分钟。

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

完整的
URL由这几个部分构成:
scheme://host:port/path?query#fragment
scheme  = 
通信协议 (常用的http,ftp,maito)
host = 
主机 (域名或IP)
port = 
端口号
path = 
路径
query = 
查询
可选,用于给动态网页(如使用CGIISAPIPHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用”&”符号隔开,每个参数的名和值用”=”符号隔开。
fragment = 
信息片断
字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)
对于这样一个URL
我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串(在浏览器中就是完整的地址栏)
2,window.location.protocol
URL 
的协议部分
本例返回值:http:
3,window.location.host
URL 
的主机部分
本例返回值:
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参数值

方法一:正则分析法

 

function getQueryString(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;}

 

 

 

方法二:采用split拆成数组

 

 

 

 

function GetRequest() {   var url = location.search; //获取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;}

 

 

本文转自 梦在旅途 博客园博客,原文链接:http://www.cnblogs.com/zuowj/archive/2013/01/11/2857099.html  ,如需转载请自行联系原作者

你可能感兴趣的文章
《图解HTTP》第4章_返回结果的HTTP状态码-思维导图
查看>>
[译] iPhone X 网页设计
查看>>
webpack入门及踩坑应对指南
查看>>
为什么你学Python效率会这么低?
查看>>
深圳晶泰科技招聘后端工程师,获腾讯Google红杉投资
查看>>
对于数据库优化的理解
查看>>
python学习三:列表、元组、字典、集合
查看>>
Netty 框架总结「ChannelHandler 及 EventLoop」
查看>>
Linux 下启动 Tomcat 抛出Can't connect to X11 window server 问题的解决方法
查看>>
Hexo博客NexT主题美化之显示当前浏览进度
查看>>
java版b2b2c社交电商spring cloud分布式微服务(七)springboot开启声明式事务
查看>>
品质生活正式开启,欧普照明&华为智选再创智能家居里程碑式突破
查看>>
【本人秃顶程序员】分库分表怎么才能无限扩容,看这篇文章就对了
查看>>
迁移潮来袭!数十个项目宣布即将停止支持 Python 2
查看>>
Javascrip—装饰器(7)
查看>>
Java 11 已发布,String 还能这样玩!
查看>>
(一)java版电子商务spring cloud分布式微服务b2b2c社交电商-服务的注册与发现(Eureka)...
查看>>
使用DataV制作实时销售数据可视化大屏
查看>>
Hello Juejin
查看>>
AndroidStudio导入或者新建项目一直build
查看>>