利用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 相关文章推荐
JavaScript自执行闭包的小例子
Jun 29 Javascript
jQuery中fadeOut()方法用法实例
Dec 24 Javascript
jQuery满屏焦点图左右滚动特效代码分享
Sep 07 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 Javascript
vue实现简单全选和反选功能
Sep 15 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数据流应用的简单例子
2012/06/01 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
Python中extend和append的区别讲解
2019/01/24 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
广州地球村科技数据库题目
2016/04/25 面试题
派出所所长先进事迹
2014/05/19 职场文书
校友回访母校寄语
2015/02/26 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
2016年安全月活动总结
2016/04/06 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书