读书人

parseURL工具种

发布时间: 2012-10-13 11:38:17 作者: rapoo

parseURL工具类

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: 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'取得URL的参数,以对象形式返回!var getParam = function(path){    var result = {},param = /([^?=&]+)=([^&]+)/ig,match;    while((match = param.exec(path)) != null){        result[match[1]] = match[2];    }    return result;} Object.keys = Object.keys || function(obj){    var result = [];    for(var i in obj){        if(obj.hasOwnProperty(i)){            result.push(i)        }    }    return result;}var path = "http://tieba.baidu.com/f?ct=318767104&tn=baiduKeywordSearch&sc=1&pn=0&rn=50&lm=4&rs4=2&rs3=2&word=%D0%C2%BE%D3%D5%D1%C4%CB&frs=jpq"; var r = getParam(path);alert(Object.keys(r))//ct,tn,sc,pn,rn,lm,rs4,rs3,word,frs//2010.9.22更新function getParam(name){//获取参数值     var sUrl = window.location.search.substr(1);    var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"));    return (r == null ? null : unescape(r[2]));}
?

?

读书人网 >Web前端

热点推荐