通常来说,我们使用Javascript处理和解析URL是使用location对象。在今天这个代码小技巧中,我们使用另外一个比较异类的方式处理和解析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'

GBdebug在线调试唯一地址:http://www.gbtags.com/gb/debug/c8946680-fb7f-4a2b-8cb7-9c81b420a74a.htm

可以看到运行结果如下:

阅读原文:异类的Javascript处理和解析URL的方式

异类的Javascript处理和解析URL的方式的更多相关文章

  1. javascript parseUrl函数解析url获取网址url参数

    function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, pr ...

  2. Javascript 利用a标签自动解析URL分析网址实例

    /* * @function: 通过a标签解析url标签 * @param:url url参数是字符串,解析的目标 通过IE6-9 chrome Firefox测试 * */ function par ...

  3. javascript 常用方法 解析URL,补充前导字符

    2018-11-7 20:41:20 星期三 1. 解析URL function parseUrl(url){ url = decodeURIComponent(url); var u = url.s ...

  4. 【javascript】利用 a 标签自动解析 url

    很多时候,我们有从 url 中提取域名,查询关键字,变量参数值等的需求,然而我们可以让浏览器方便地帮助我们完成这一任务而不用写正则去抓取.方法就是先创建一个 a 标签然后将需要解析的 url 赋值给  ...

  5. php 解析url 和parse_url使用

    通过url进行传值,是php中一个传值的重要手段.所以我们要经常对url里面所带的参数进行解析,如果我们知道了url传递参数名称,例如 /index.php?name=tank&sex=1#t ...

  6. location对象的属性和方法应用(解析URL)

    本文将与大家分享下location对象使用属性和方法来解析URL的实例,感兴趣的朋友可以参考下,希望对你有所帮助   location对象提供了很多属性和方法用来解析URL. 复制代码代码如下: &l ...

  7. javascript怎么获取指定url网页中的内容

    javascript怎么获取指定url网页中的内容 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? javascript出于安全机制不允许跨域操作的. 二.用ph ...

  8. 浅谈浏览器解析 URL+DNS 域名解析+TCP 三次握手与四次挥手+浏览器渲染页面

    (1)浏览器解析 URL 为了能让我们的知识层面看起来更有深度,我们应该考虑下面两个问题了: 从浏览器输入 URL 到渲染成功的过程中,究竟发生了什么? 浏览器渲染过程中,发生了什么,是不是也有重绘与 ...

  9. JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]

    Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL. 语法: location.[属性|方法] location对象属性图示: location 对象属性: lo ...

随机推荐

  1. Am335x u-boot 代码大概流程

    在_面之前的流程和u-boot-spl一样,区别在于_main中. 对于u-boot 2016.03来说 ENTRY(_main) /* * Set up initial C runtime envi ...

  2. Opencv学习笔记1:安装opencv和VS2015并进行环境配置

    用了Opencv一段时间了,简单记录一下opencv在vs2015下的配置. 第一部分:OpenCV3.2.0的下载 OpenCV官方下载地址: https://opencv.org/releases ...

  3. 「WC2010」重建计划(长链剖分/点分治)

    「WC2010」重建计划(长链剖分/点分治) 题目描述 有一棵大小为 \(n\) 的树,给定 \(L, R\) ,要求找到一条长度在 \([L, R]\) 的路径,并且路径上边权的平均值最大 \(1 ...

  4. POJ3233 Matrix Power Series 矩阵乘法

    http://poj.org/problem?id=3233 挺有意思的..学习到结构体作为变量的转移, 题意 : 给定矩阵A,求A + A^2 + A^3 + ... + A^k的结果(两个矩阵相加 ...

  5. POJ1716 贪心

    题目大意:在[0,10000]上给出n个区间,要求在区间选整数点,每个区间至少包含两个点,问至少要几个点.题目保证有解决方案. 题目分析: 我们做过在区间上至少包含一个点的题目.类似的方法,我们先排序 ...

  6. Mysql -- 设置中国时区时间

       Mysql -- 设置中国时区时间 查看mysql的时区设置 mysql> show variables like '%time_zone%'; 修改mysql的时区设置, 注:mysql ...

  7. js冒泡处理

    <div id="first"> 外层 <span id="second"> 内层 </span> </div> ...

  8. Codeforces Round #262 (Div. 2) E. Roland and Rose 暴力

    E. Roland and Rose Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/pro ...

  9. Windows7 无法访问共享文件,域访问解决方法。

    1.开始——>运行——>gpedit.msc 打开[本地组策略编辑器] 2.计算机配置——>Windows设置——>安全设置——>本地策略——>安全选项——> ...

  10. Python中进程无法结束的处理办法

    1.方法一    http://hi.baidu.com/javalang/item/72fabf2359a30b464799625e 也就是说当线程使用start方法运行起来后,只有当run方法运行 ...