Home > Web Front-end > JS Tutorial > Use javascript to replace parameter values ​​in URL sample code_javascript skills

Use javascript to replace parameter values ​​in URL sample code_javascript skills

WBOY
Release: 2016-05-16 17:02:16
Original
1344 people have browsed it

Today I encountered a need to use JavaScript to replace some parameters in the URL. I remembered that I found a parseUrl function from the Internet not long ago, which can be implemented. The code is organized as follows:

Copy code The code is as follows:

//分析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('/')
    };
}

//替换myUrl中的同名参数值
function replaceUrlParams(myUrl, newParams) {
    /*
    for (var x in myUrl.params) {
        for (var y in newParams) {
            if (x.toLowerCase() == y.toLowerCase()) {
                myUrl.params[x] = newParams[y];
            }
        }
    }
    */

    for (var x in newParams) {
        var hasInMyUrlParams = false;
        for (var y in myUrl.params) {
            if (x.toLowerCase() == y.toLowerCase()) {
                myUrl.params[y] = newParams[x];
                hasInMyUrlParams = true;
                break;
            }
        }
        //原来没有的参数则追加
        if (!hasInMyUrlParams) {
            myUrl.params[x] = newParams[x];
        }
    }
    var _result = myUrl.protocol "://" myUrl.host ":" myUrl.port myUrl.path "?";

    for (var p in myUrl.params) {
        _result = (p "=" myUrl.params[p] "&");
    }

    if (_result.substr(_result.length - 1) == "&") {
        _result = _result.substr(0, _result.length - 1);
    }

    if (myUrl.hash != "") {
        _result = "#" myUrl.hash;
    }
    return _result;
}

//辅助输出
function w(str) {
    document.write(str "
");
}

var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
w("myUrl.file = " myURL.file)     // = 'index.html' 
w("myUrl.hash = " myURL.hash)     // = 'top'  
w("myUrl.host = " myURL.host)     // = 'abc.com'
w("myUrl.query = " myURL.query)    // = '?id=255&m=hello'
w("myUrl.params = " myURL.params)   // = Object = { id: 255, m: hello }  
w("myUrl.path = " myURL.path)     // = '/dir/index.html'  
w("myUrl.segments = " myURL.segments) // = Array = ['dir', 'index.html']
w("myUrl.port = " myURL.port)     // = '8080'  
w("myUrl.protocol = " myURL.protocol) // = 'http'  
w("myUrl.source = " myURL.source)   // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

var _newUrl = replaceUrlParams(myURL, { id: 101, m: "World", page: 1,"page":2 });

w("
新url为:")
w(_newUrl); //http://abc.com:8080/dir/index.html?id=101&m=World&page=2#top   
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template