利用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 globalStorage类代码
Jun 04 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
浅析Javascript的自动分号插入(ASI)机制
Sep 29 Javascript
二维码图片生成器QRCode.js简单介绍
Aug 18 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
详解vue中移动端自适应方案
May 05 Javascript
el-select数据过多懒加载的解决(loadmore)
May 29 Javascript
javascript实现画板功能
Apr 12 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 Javascript
关于element的表单组件整理笔记
Feb 05 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP函数常用用法小结
2010/02/08 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
使用python开发vim插件及心得分享
2014/11/04 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
SQL数据库笔试题
2016/03/08 面试题
物业保安主管岗位职责
2013/12/25 职场文书
公司合作意向书
2014/04/01 职场文书
供电工程专业求职信
2014/08/09 职场文书
财务整改报告范文
2014/11/05 职场文书
2015年新教师工作总结
2015/04/28 职场文书