利用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文件的函数代码分享
Jul 28 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
JavaScript自学笔记(必看篇)
Jun 23 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 Javascript
javascript将list转换成树状结构的实例
Sep 08 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
vue循环数组改变点击文字的颜色
Oct 14 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
原生js滑动轮播封装
Jul 31 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
python 实现堆排序算法代码
2012/06/05 Python
python切换hosts文件代码示例
2013/12/31 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
pytorch实现线性拟合方式
2020/01/15 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python 实现集合Set的示例
2020/12/21 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
培训讲师岗位职责
2014/04/13 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android