• javascript获取和设置URL中的参数


    勘误版

    function getQuery(key, url) {
        url = url || window.location.href;
        if (url.indexOf('#') !== -1)
            url = url.substring(0, url.indexOf('#'));
        var rts = [], rt;
        var queryReg = new RegExp('(^|\?|&)' + key + '=([^&]*)(?=&|$|#)', 'g');
        while ((rt = queryReg.exec(url)) != null) {
            rts.push(decodeURIComponent(rt[2]));
        }
        if (rts.length == 0) return null;
        if (rts.length == 1) return rts[0];
        return rts;
    }
    
    
    function setQuery(key, value, url) {
    
        url = url || window.location.href;
        var hash = '';
    
        if (url.indexOf('#') !== -1)
            hash = url.substring(url.indexOf('#'));
    
        url = url.replace(hash, '');
        url = url.replace(new RegExp('(^|\?|&)' + key + '=[^&]*(?=&|#|$)', 'g'), '');
        value = isArray(value) ? value : [value];
    
        for (var i = value.length - 1; i >= 0; i--) {
            value[i] = encodeURIComponent(value[i]);
        }
    
        var p = key + '=' + value.join('&' + key + '=');
        return url + (/?/.test(url) ? '&' : '?') + p + hash;
    }
    

     增强版,支持同名参数

    function getQuery(key, url) {
        url = url || window.location.href;
        var rts = [], rt;
        var queryReg = new RegExp('(^|\?|&)' + key + '=([^&]*)(?=&|$|#)', 'g');
        while ((rt = queryReg.exec(url)) != null) {
            rts.push(decodeURIComponent(rt[2]));
        }
        if (rts.length == 0) return null;
        if (rts.length == 1) return rts[0];
        return rts;
    }
    
    
    function setQuery(key, value, url) {
    
        url = url || window.location.href;
        url = url.replace(new RegExp('(^|\?|&)' + key + '=[^&]*(?=&|$|#)', 'g'), '');
        value = value.splice ? value : [value];
    
        for (var i = value.length - 1; i >= 0; i--) {
            value[i] = encodeURIComponent(value[i]);
        }
    
        var p = key + '=' + value.join('&' + key + '=');
        return url + (/?/.test(url) ? '&' : '?') + p;
    }
    

     利用正则表达式

    function getQuery(key, url) {
        var reg = new RegExp('^\S*(\?|&)' + key + '=([^&]*)\S*$');
        var l = url || window.location.href;
        if (reg.test(l)) {
            return decodeURIComponent(l.replace(reg, '$2'));
        } else {
            return null;
        }
    }
    
    function setQuery(key, value, url) {
        var reg = new RegExp(key + '=[^&]*(?=&|$)');
        var l = url || window.location.href;
        if (reg.test(l)) {
            return l.replace(reg, key + '=' + encodeURIComponent(value));
        } else {
            return l + (/?/.test(l) ? '&' : '?') + key + '=' + encodeURIComponent(value);
        }
    }
    
  • 相关阅读:
    Using Redis as Django's session store and cache backend
    Celery 和 Redis 入门
    centos 安装 rabbitmq
    CentOS 6 安装 Python3.5以及配置Django
    python metaclass 入门简介
    uWSGI其三:uWSGI搭配Nginx使用
    CentOS 6.5 安装 Nginx 1.7.8 教程
    基于nginx和uWSGI在Ubuntu上部署Djan
    CentOS 6.5 下安装 Redis 2.8.7
    查看Selinux和关闭Selinux
  • 原文地址:https://www.cnblogs.com/sntetwt/p/3337451.html
Copyright © 2020-2023  润新知