一个不错的JavaScript解析浏览器路径方法(javascript文件路径)

网友投稿 366 2022-07-01

JavaScript中有时需要用到当前的请求路径等涉及到url的情况,正常情况下我们可以使用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,

query: a.search,

params: (function(){

var ret = {},

seg = a.search.replace(/^\?/,'').split('&'),

len = seg.length, i = 0, s;

for (;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('http://abc.com:8080/dir/index.html?id=255&m=hello#top');

myURL.file; // = 'index.html'

myURL.hash; // = 'top'

myURL.host; // = 'abc.com'

myURL.query; // = '?id=255&m=hello'

myURL.params; // = Object = { id: 255, m: hello }

myURL.path; // = '/dir/index.html'

myURL.segments; // = Array = ['dir', 'index.html']

myURL.port; // = '8080'

myURL.protocol; // = 'http'

myURL.source; // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

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('http://abc.com:8080/dir/index.html?id=255&m=hello#top');

myURL.file; // = 'index.html'

myURL.hash; // = 'top'

myURL.host; // = 'abc.com'

myURL.query; // = '?id=255&m=hello'

myURL.params; // = Object = { id: 255, m: hello }

myURL.path; // = '/dir/index.html'

myURL.segments; // = Array = ['dir', 'index.html']

myURL.port; // = '8080'

myURL.protocol; // = 'http'

myURL.source; // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何用PhotoShop制作网站的favicon.ico(怎么用ps做网站)
下一篇:JSON资料搜集整理大全(json内容)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~