利用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 02 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
jquery中this的使用说明
Sep 06 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
原生javascript实现图片滚动、延时加载功能
Jan 12 Javascript
快速掌握jQuery插件开发
Jan 19 Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
angularjs实现猜大小功能
Oct 23 Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
Vue Router的手写实现方法实现
Mar 02 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
PHP静态成员变量
2017/02/14 PHP
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
JavaScript实现移动端拖动元素
2020/11/24 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
基于Django统计博客文章阅读量
2019/10/29 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
离退休人员聘用协议书
2014/11/24 职场文书
道歉情书大全
2015/05/12 职场文书
聘用合同范本
2015/09/21 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
java基础——多线程
2021/07/03 Java/Android
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android