利用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 相关文章推荐
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
jquery tab标签页的制作
May 10 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
网页中右键功能的实现方法之contextMenu的使用
Feb 20 Javascript
node.js中express中间件body-parser的介绍与用法详解
May 23 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
详解JavaScript栈内存与堆内存
Apr 04 Javascript
Vue 权限控制的两种方法(路由验证)
Aug 16 Javascript
BootstrapValidator实现表单验证功能
Nov 08 Javascript
Vue简单实现原理详解
May 07 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 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 cookie的操作实现代码(登录)
2010/12/29 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php时间计算相关问题小结
2016/05/09 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php实现微信支付之企业付款
2018/05/30 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
javascript判断office版本示例
2014/04/11 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python日志模块logbook使用方法
2019/09/19 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
规范化管理年活动总结
2014/08/29 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书