3月28th

Javascript处理和解析URL的方式

DIY前端设计我来说两句!

    通常来说,我们使用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&#43;&#43;){ if(!seg[i]){continue;}="" s="seg[i].split('=');" ret[s[0]]="s[1];" }="" return="" ret;="" })(),="" file:(a.pathname.match(="" \="" ([^\="" ?#]&#43;)$="" i)||[,''])[1],="" hash:="" a.hash.replace('#',''),="" path:="" a.pathname.replace(="" ^([^\="" ])="" ,'="" $1'),="" relative:(a.href.match(="" tps?:\="" [^\="" ]&#43;(.&#43;)="" )||[,''])[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&#43;&#43;)

{>

本文出自:DIY博客园,链接:https://www.diybloghome.com/frontlogy/180.html,转载请注明!