javascriptはurlパラメータのparseUrlを取得します.

3424 ワード

functionparseURL(url) {    vara =  document.createElement('a');    a.href = url;    return{        source: url,        protocol: a.protocol.replace(':',''),        host: a.hostname,        port: a.port,        query: a.search,        params: (function(){            varret = {},                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];            }            returnret;        })(),        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('/')   };}
varmyURL = 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'