js去除url中指定参数
在项目中,遇到有参数只需要弹出一次,弹出后返回时就会再次弹出,所以需要将弹出参数取消:代码如下:function delParam(paramKey) {var url = window.location.href;//页面urlvar urlParam = window.location.search.substr(1);//页面参数...
·
在项目中,遇到有参数只需要弹出一次,弹出后返回时就会再次弹出,所以需要将弹出参数取消:
代码如下:
function delParam(paramKey) {
var url = window.location.href; //页面url
var urlParam = window.location.search.substr(1); //页面参数
var beforeUrl = url.substr(0, url.indexOf("?")); //页面主地址(参数之前地址)
var nextUrl = "";
var arr = new Array();
if (urlParam != "") {
var urlParamArr = urlParam.split("&"); //将参数按照&符分成数组
for (var i = 0; i < urlParamArr.length; i++) {
var paramArr = urlParamArr[i].split("="); //将参数键,值拆开
//如果键雨要删除的不一致,则加入到参数中
if (paramArr[0] != paramKey) {
arr.push(urlParamArr[i]);
}
}
}
if (arr.length > 0) {
nextUrl = "?" + arr.join("&");
}
url = beforeUrl + nextUrl;
return url;
}
javascript 删除 url 中指定参数,并返回 url
而今天就是遇到要删除某个参数的问题.郁闷,于是,写了这个函数.
实现代码
// 删除url中某个参数,并跳转
function funcUrlDel(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
};
}
功能:删除url中指定的参数,并返回删除参数后的完整url
使用方法
示例
url: http//xx.com/list?page=1&a=5
执行代码
funcUrlDel("page")
返回
http//xx.com/list?a=5
其他说明
会忽略 hash
值,如果需要,自行加上即可.
JS-删除url参数
function removeURLParameter(url, parameter) {
var urlparts = url.split('?');
if(urlparts.length >= 2) {
//参数名前缀
var prefix = encodeURIComponent(parameter) + '=';
var pars = urlparts[1].split(/[&;]/g);
//循环查找匹配参数
for(var i = pars.length; i-- > 0;) {
if(pars[i].lastIndexOf(prefix, 0) !== -1) {
//存在则删除
pars.splice(i, 1);
}
}
return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');
}
return url;
}
js 对url进行某个参数的删除,并返回url
两种情况
1.对当前页面的url进行操作
function funcUrlDel(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
}else{
return window.location.href;
};
}
console.log(funcUrlDel('tt'));
2.对特定的url进行处理
function urlDelP(url,name){
var urlArr = url.split('?');
if(urlArr.length>1 && urlArr[1].indexOf(name)>-1){
var query = urlArr[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 urlte = urlArr[0] +'?'+ JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
return urlte;
}else{
return url;
};
}
console.log(urlDelP('http://test.com/test?tt=3&kk=6','tt'));
console.log(urlDelP('http://test.com/test?kk=6&ll=88','tt'));
js 获取url并删除指定参数
//返回参数字符串
function remove_arg_from_url(arg_name_removed) {
//设置或获取 href 属性中跟在问号后面的部分。
var url = window.location.search;
var arr = [];
var query_string = "";
if ( url.lastIndexOf('?') == 0) {
//截取
var arg_str = url.substr( url.lastIndexOf('?') +1, url.length);
if (arg_str.indexOf('&') != -1) {
var arr = arg_str.split('&');
for (var i in arr) {
if (arr[i].split('=')[0] != arg_name_removed) {
query_string = query_string + arr[i].split('=')[0] + "=" + arr[i].split('=')[1] + "&";
}
}
return query_string.substr(0, query_string.length - 1);
}
}
}
//正则匹配
function remove_arg_from_url( name ){
//从当前URL的?号开始的字符串
//如:http://www.baidu.com/s?wd=baidu&cl=3 它的search就是?wd=baidu&cl=3
var query_string = window.location.search.substr(1);
//如果没有参数则返回空
if (query_string != undefined) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
return query_string.replace(reg,'');
}
return '';
}
//获取url中的参数
function getUrlParam(str ,name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = str.match(reg); //匹配目标参数
console.log(r);
if (r != null) return decodeURI(r[2]); return null; //返回参数值
}
更多推荐
所有评论(0)