下面小编就为大家带来一篇浅谈 js 的 url 解析函数封装。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
在实际开发中,有些通过 get 方式与后台交换数据的时候,需要用到的数据在 url 中,因此就需要我们来获取到 url 中有用的信息,下面封装的函数已经可以将 url 解析的很彻底了,可以拿来直接用的:
- function parseURL(url) {
- var a = document.createElement('a');
- a.href = url;
- return {
- source: url,
- protocol: a.protocol.replace(':', ''),
- host: a.hostname,
- port: a.port,
- query: a.search,
- params: (function() {
- var ret = {},
- seg = a.search.replace(/^\?/, '').split('&'),
- len = seg.length,
- i = 0,
- s; //len = 2
- alert(a.search) 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('/')
- };
- }
该函数的用法如下:
- var myURL = parseURL(window.location.href); //通过parseURL函数来解析当前页面的url;window.location.href可替换成任意要解析的url,如果直接写其他的url,格式应该字符串;
- var search_obj = myURL.params;//该解析方式是将search的内容解析为对象,方便进行数据的调用;其他方法可以自行尝试;
- var url_post = myURL.post;//当前页面的端口号;
来源: http://www.phperz.com/article/17/0302/264539.html