URL即:统一资源定位符 (Uniform Resource Locator, URL)
完整的URL由这几个部分构成:
scheme://host:port/path?query#fragment
scheme:通信协议
常用的http,ftp,maito等
host:主机
服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。
port:端口号
整数,可选,省略时使用方案的默认端口,如http的默认端口为80。
path:路径
由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
query:查询
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。
fragment:信息片断
字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)
对于这样一个URL
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的协议部分
本例返回值:http:
3,window.location.host
URL 的主机部分
本例返回值:www.x2y2.com
4,window.location.port
URL 的端口部分
如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值:?ver=1.0&id=6
7,window.location.hash
锚点
本例返回值:#imhere
url工具类
function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol: a.protocol.replace(':',''), host: a.hostname, port: a.port, query: a.search, params: (function(){ var ret = {}, seg = a.search.replace(/^\?/,'').split('&'), len = seg.length, i = 0, s; for (;i<len;i++) { if (!seg[i]) { continue; } s = seg[i].split('='); ret[s[0]] = s[1]; } return ret; })(), file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1], hash: a.hash.replace('#',''), path: a.pathname.replace(/^([^\/])/,'/$1'), relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1], segments: a.pathname.replace(/^\//,'').split('/') }; } 用法: var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); myURL.file; // = 'index.html' myURL.hash; // = 'top' myURL.host; // = 'abc.com' myURL.query; // = '?id=255&m=hello' myURL.params; // = Object = { id: 255, m: hello } myURL.path; // = '/dir/index.html' myURL.segments; // = Array = ['dir', 'index.html'] myURL.port; // = '8080' myURL.protocol; // = 'http' myURL.source; // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top' 取得URL的参数,以对象形式返回! var getParam = function(path){ var result = {},param = /([^?=&]+)=([^&]+)/ig,match; while((match = param.exec(path)) != null){ result[match[1]] = match[2]; } return result; } Object.keys = Object.keys || function(obj){ var result = []; for(var i in obj){ if(obj.hasOwnProperty(i)){ result.push(i) } } return result; } 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"; var r = getParam(path); alert(Object.keys(r))//ct,tn,sc,pn,rn,lm,rs4,rs3,word,frs //2010.9.22更新 function getParam(name){//获取参数值 var sUrl = window.location.search.substr(1); var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)")); return (r == null ? null : unescape(r[2])); }
相关推荐
### 封装JS工具类 #### 1. Echo 方法 该方法的功能是向客户端输出指定的消息。 ```csharp public static void Echo(string msg) { HttpContext.Current.Response.Write(msg); } ``` 通过`HttpContext.Current....
2. **网络请求封装**:uni-app提供了uni.request()来处理HTTP请求,但为了简化调用和统一错误处理,开发者往往会在工具类中封装这个方法,比如`apiRequest(url, data, method)`,它可能包含了请求头设置、数据序列化...
### three.js工具类知识点 #### 一、Three.js概述与模型加载 - **Three.js**:是一个基于WebGL的3D库,它简化了复杂的3D图形编程,并提供了丰富的API来帮助开发者创建交互式的3D应用程序。 - **模型加载**:在本...
JS生成QrCode的工具类,微信支付宝等支付URL可以用这个
这里我们将深入探讨这些工具类在JavaScript中的应用。 **Base64**是一种用于在网络上传输二进制数据的编码方式。它将任意可打印字符转换为一个长度为4的字符序列,每个字符来自"ASCII可打印字符"集合,包括'0'-'9'...
通过对正则表达式的巧妙运用和动态方法的生成,该类提供了一种简洁而有效的方法来处理URL,使其成为Web开发人员处理复杂URL结构的理想工具。无论是用于解析用户输入的URL,还是在服务器端进行URL的动态构建,`Poly9....
工具类通过封装这些操作,提供了一种简洁的API,使得开发者无需直接与`HttpWebRequest`交互,只需传入URL和参数即可。 对于返回的数据格式,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language...
在Java编程领域,工具类(Utility Class)是程序员经常使用的代码模块,它们提供了一系列静态方法,帮助简化常见的任务,提高代码的复用性。在这个"java工程常用代码工具类"中,我们可以找到几个关键功能的实现,...
"js-htmlencode"就是这样一个专为此目的设计的工具类。 该工具类主要包含以下功能: 1. HTML编码:将HTML特殊字符转换为它们的HTML实体等价物。例如,`会变成`<`,`>`会变成`>`,`"`会变成`"`,`'`会...
该javaScript库主要包括了如下模块: 1、手机号码校验; 2、身份证校验;3、邮箱校验; 4、字符串常用类; 5、简单四则运算;6、正则表达式生成工具类;... 8、url工具;9、数组工具类;10、对象工具类
在Web应用程序中,有时我们需要提供功能让用户导入或导出Excel文件,这时就需要用到专门的Excel导入导出工具类。本文将详细讲解Excel导入导出工具类在Java Web开发中的实现原理、常用库以及实际应用。 首先,导入...
URL的操作类;XML操作类;处理多媒体的公共类;弹出消息类;二维码操作类;汉字转拼音;加密解密;科学计数,数学;类型转换;配置文件操作类;上传下载;时间操作类;视频帮助类;数据展示控件绑定数据类;条形码帮助类;图片操作...
1. **字符串处理工具类**:这类工具类通常提供如字符串格式化、校验、拼接、转换等方法,例如`StringUtils`,可以用于处理URL编码解码、去除空格、检查是否为空等操作。 2. **日期时间工具类**:Android中的日期...
在PHP编程中,工具类(Utility Class)是程序员经常使用的代码模块,它们包含了一系列静态方法,为各种常见的任务提供简洁的解决方案。以下是一些在PHP项目中常用的工具类及其相关知识点: 1. **JS 弹窗与跳转** ...
这篇博客“几个JS图片操作工具”(博文链接:https://dreamit.iteye.com/blog/231712)为我们揭示了一些实用的JavaScript库和方法,用于处理和操作图片。下面将详细探讨这些知识点: 1. 图片加载与预加载: 在网页...
10. **统一的日志记录**:为了便于调试和问题排查,工具类可能会自动记录每个请求的详细信息,如请求URL、参数、响应时间等。 以上是基于“微信小程序工具类简单实用”和“netUtil.js”的文件名推测的可能功能和...
JavaScript(简称JS)工具类是开发Web应用时不可或缺的一部分,它们提供了一系列实用的功能,帮助开发者更高效地编写代码。在JavaScript编程中,工具类通常包含了各种常用的函数和方法,可以处理字符串、数组、对象...
【标题】"安卓开发框架工具类相关-javascript开发android应用的快速框架.zip"涉及的核心知识点是使用JavaScript开发Android应用程序,这种技术通常被称为Hybrid开发。它允许开发者利用Web技术(如HTML5、CSS3和...
在JavaScript开发过程中,工具类(Utility Classes)是程序员经常使用的代码模块,它们包含了一系列静态方法,可以方便地处理各种常见的编程任务。"Aleppo"项目就是这样一个资源库,它为开发者提供了一些用...
本文将详细讲解"codeURL编码解码工具"的相关知识点,包括URL编码的原理、用途以及如何使用这类工具进行编码和解码。 URL(Uniform Resource Locator)即统一资源定位符,是互联网上的资源地址。它由协议类型、主机...