zoukankan      html  css  js  c++  java
  • 总结:客户端与服务器端使用正则增加URL参数的方法

    先说服务器端的:

    C#版本

    #region URL参数操作
        /// <summary>
        /// URL参数操作
        /// </summary>
        public class UrlPageHelper
        {
            /// <summary>
            /// 以正则表达式方式增加URL参数
            /// </summary>
            /// <param name="key"></param>
            /// <param name="value"></param>
            /// <returns></returns>
            public static string AddUrlParm(string key, string value)
            {
                string Url = HttpContext.Current.Request.RawUrl;
                Url = Regex.Replace(Url + "&", @"(.*)(?|&)" + key + "=[^&]+?(&)(.*)", "$1$2$4", RegexOptions.IgnoreCase);
                Url = Url.Remove(Url.Length - 1);
                if (Url.Contains('?'))
                {
                    Url = string.Format("{0}&{1}={2}", Url, key, value);
                }
                else
                {
                    Url = string.Format("{0}?{1}={2}", Url, key, value);
                }
                return Url;
            }
        }
        #endregion

    PHP版本

    /**
         * 添加URL参数
         * @param string $url   原URL
         * @param string $key   键
         * @param string $value 值
         * @return string       新URL
         */
        private function add_querystring_var($key, $value) {
            $url = $this->url;
            $url=preg_replace('/(.*)(?|&)'.$key.'=[^&]+?(&)(.*)/i','$1$2$4',$url.'&');
            $url=substr($url,0,-1);
            if(strpos($url,'?') === false){
                return ($url.'?'.$key.'='.$value);
            } else {
                return ($url.'&'.$key.'='.$value);
            }
        }

    然后是客户端的

    (function ($) {
        $.extend({
            Request: function (m) {
                var sValue = location.search.match(new RegExp("[?&]" + m + "=([^&]*)(&?)", "i"));
                return sValue ? sValue[1] : sValue;
            },
            UrlUpdateParams: function (url, name, value) {
                var r = url;
                if (r != null && r != 'undefined' && r != "") {
                    value = encodeURIComponent(value);
                    var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
                    var tmp = name + "=" + value;
                    if (url.match(reg) != null) {
                        r = url.replace(eval(reg), tmp);
                    }
                    else {
                        if (url.match("[?]")) {
                            r = url + "&" + tmp;
                        } else {
                            r = url + "?" + tmp;
                        }
                    }
                }
                return r;
            }
    
        });
    })(jQuery);

    客户端使用方法:

    $.UrlUpdateParams(window.location.href, "order", "111")

     

  • 相关阅读:
    K8S学习笔记之k8s使用ceph实现动态持久化存储
    Linux学习笔记之Centos7 自定义systemctl服务脚本
    ELK学习笔记之Kibana权限控制和集群监控
    ELK学习笔记之ELK6.0 X-pack设置用户名和密码
    Linux学习笔记之rsync配置
    K8S学习笔记之Pod的Volume emptyDir和hostPath
    不小心删除了某个包的一部分,重新安装方法
    串口数据解析总结
    CMakeLists 链接库相关指令
    google 开源项目阅读计划
  • 原文地址:https://www.cnblogs.com/superfeeling/p/5832644.html
Copyright © 2011-2022 走看看