位置:海鸟网 > IT > JavaScript >

javascript将url中的某些参数替换的需求

javascript将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('http://www.cuoxin.com/') 

    }; 

}

用法:

var myURL = parseURL('http://www.***.com/default.aspx?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://www.***.com

取得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 = "***.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