提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、如何删除Url上某些参数?

这里的url 是指一个网站链接

例如: https://baidu.com?a=1&b=2

二、使用步骤

代码如下(示例):

getnewurl(name) {
	    var loca = window.location;
	    var baseUrl = loca.origin + loca.pathname + "?";
	    var query = loca.search.substr(1);
	    if (query.indexOf(name)>-1) {
	        var obj = {}
	        var arr = query.split("&");
	        for (var i = 0; i < arr.length; i++) {
	            arr[i] = arr[i].split("=");
	            obj[arr[i][0]] = arr[i][1];
	        };
	        delete obj[name];
	        var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
	        return url
	    };
}

getnewurl 是把需要删除的参数摘除掉
a是我要删除的参数
window.history.replaceState 是history的方法用来替换当前页面的url 并不会增加路由记录

let url=this.getnewurl('a')
window.history.replaceState(null, null, url);

三、结果

删除完之后
例如: https://baidu.com?b=2

这个是过滤多个参数的情况 token|uid 是参数

getnewurl(){
	    let url = document.location.href;
	    let reg = /[^\w](token|uid)=?([^&|^#]*)/g;
	    url = url.replace(reg,"");
	    reg = /&&/g;
	    url = url.replace(reg,"");
	    reg = /&#/g;
	    url = url.replace(reg,"#");
	    reg = /\?#/g;
	    url = url.replace(reg,"#");
	    // url = url.replaceAll(document.domain,"");
	    // url = url.replaceAll("http://","");
	    // url = url.replaceAll("https://","");
	    reg = /\?#/g;
	    url = url.replace(reg,"#");
	    return url;
	}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐