javascript parseUrl函数解析url获取网址url参数

 1 function parseURL(url) { 
 2     var a = document.createElement('a'); 
 3     a.href = url; 
 4     return { 
 5         source: url, 
 6         protocol: a.protocol.replace(':',''), 
 7         host: a.hostname, 
 8         port: a.port, 
 9         query: a.search, 
10         params: (function(){ 
11             var ret = {}, 
12             seg = a.search.replace(/^\?/,'').split('&'), 
13             len = seg.length, i = 0, s; 
14             for (;i<len;i++) { 
15                 if (!seg[i]) { continue; } 
16                 s = seg[i].split('='); 
17                 ret[s[0]] = s[1]; 
18             } 
19             return ret; 
20         })(), 
21         file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1], 
22         hash: a.hash.replace('#',''), 
23         path: a.pathname.replace(/^([^\/])/,'/$1'), 
24         relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1], 
25         segments: a.pathname.replace(/^\//,'').split('/') 
26     }; 
27 } 

使用实例:

 1 var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); 
 2 myURL.file; // = 'index.html' 
 3 myURL.hash; // = 'top' 
 4 myURL.host; // = 'abc.com' 
 5 myURL.query; // = '?id=255&m=hello' 
 6 myURL.params; // = Object = { id: 255, m: hello } 
 7 myURL.path; // = '/dir/index.html' 
 8 myURL.segments; // = Array = ['dir', 'index.html'] 
 9 myURL.port; // = '8080' 
10 myURL.protocol; // = 'http' 
11 myURL.source; // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

 

window.location 对象所包含的属性

属性描述
hash 从井号 (#) 开始的 URL(锚)
host 主机名和当前 URL 的端口号
hostname 当前 URL 的主机名
href 完整的 URL
pathname 当前 URL 的路径部分
port 当前 URL 的端口号
protocol 当前 URL 的协议
search 从问号 (?) 开始的 URL(查询部分)

 

posted @ 2018-12-19 17:06  青茶360  阅读(7036)  评论(1编辑  收藏  举报