Javascript处理和解析URL的方式
通常来说,我们使用Javascript处理和解析URL是使用location对象。在今天这个代码小技巧中,我们使用另外一个比较异类的方式处理和解析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;
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:="" ^\="" ,'').split('="" ')="" };="" }<="" pre="">
<p class="kwd">如何使用这个方法呢?简单如下:</p>
<pre class="brush:java;"> 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'</pre>
<p class="kwd">GBdebug在线调试唯一地址:http://www.gbtags.com/gb/debug/c8946680-fb7f-4a2b-8cb7-9c81b420a74a.htm<br>
</p>
<p>可以看到运行结果如下:</p>
<p><img src="http://www.2cto.com/uploadfile/Collfiles/20140325/20140325092945313.jpg" alt="n块エky" http:="" book.2cto.com"="" target="_blank" class="keylink" style="width: 500px; height: 371px;">阅读原文:异类的Javascript处理和解析URL的方式
<br>
</p>
</len;i++)
{>
本文出自:DIY博客园,链接:https://www.diybloghome.com/frontlogy/180.html,转载请注明!