利用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 相关文章推荐
学习jquery必备 api中英文对照的chm手册 下载
May 03 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
js图片轮播手动切换特效
Jan 12 Javascript
JavaScript实现按键精灵的原理分析
Feb 21 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
vue 使用eventBus实现同级组件的通讯
Mar 02 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
PHP连接MongoDB示例代码
2012/09/06 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP 中常量的知识整理
2017/04/14 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
在django中自定义字段Field详解
2019/12/03 Python
python绘图模块之利用turtle画图
2021/02/12 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
主持人演讲稿范文
2013/12/28 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
茶花女读书笔记
2015/06/29 职场文书
python数字图像处理之图像的批量处理
2022/06/28 Python