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


Posted in Javascript onOctober 20, 2014

对于window.location,我们比较熟悉,它有protocol,hostname,host,port,search,hash,href,pathname等属性,a标签也和window.location一样,也有这样属性,这样可以方便我们分析网址,闲话少说,上代码。

function parseURL(url) {
var a = document.createElement('a');
a.href = url;
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port||'80',
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('/')
};
}

测试地址

console.log(parseURL("http://www.w3school.com.cn/jsref/dom_obj_anchor.asp?type=2#id2"));

结果如下

{

file: "dom_obj_anchor.asp",

hash: "id2",

host: "www.w3school.com.cn",

params: {type: "2"},

path: "/jsref/dom_obj_anchor.asp",

port: "80",

protocol: "http",

query: "?type=2",

relative: "/jsref/dom_obj_anchor.asp?type=2#id2",

segments: [0: "jsref",1: "dom_obj_anchor.asp"],

source: http://www.w3school.com.cn/jsref/dom_obj_anchor.asp?type=2#id2

}
Javascript 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
纯js实现的论坛常用的运行代码的效果
Jul 15 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
Jquery结合HTML5实现文件上传
Jun 25 Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 31 Javascript
vue实现购物车抛物线小球动画效果的方法详解
Feb 13 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
Feb 06 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 Javascript
JavaScript严格模式禁用With语句的原因
Oct 20 #Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 #Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 #Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
Oct 19 #Javascript
js添加select下默认的option的value和text的方法
Oct 19 #Javascript
使用变量动态设置js的属性名
Oct 19 #Javascript
js控制鼠标事件移动及移出效果显示
Oct 19 #Javascript
You might like
PHP基本语法总结
2014/09/06 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
js DOM的学习笔记
2011/12/22 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
Internet主要有哪些网络群组成
2015/12/24 面试题
商务日语毕业生自荐信
2013/11/23 职场文书
民生工程实施方案
2014/03/22 职场文书
小露珠教学反思
2014/04/30 职场文书
求职信模板
2014/05/23 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
Mysql Show Profile
2021/04/05 MySQL