从URL

2016-03-31 89 views
0

删除一个空的查询字符串我定义的查询字符串catid为:从URL

mydomain.com/?catid= 

如何删除?catid在我的网址,如果它是空的吗?

+1

你可以添加一些代码吗?否则,您的问题的答案是“按反斜杠,直到该部分被删除”。 – Bolza

+1

[从url中删除所有空值]的可能重复(http://stackoverflow.com/questions/14624275/remove-all-empty-values-from-url) – jeerbl

回答

0

来自Jerome Brunel非常类似问题的代码不适用于您的特定请求。

var arr=['mydomain.com/?catid=','mydomain.com/?catid=1&id1=','mydomain.com/?catid=&id=1','mydomain.com/?catid=&id=','mydomain.com/?catid=&id=&id2=','mydomain.com/?catid=&id=1&id2=&id3=1&id4=&id5=1&id6=2']; 
function removeEmptyQueryParameters(s) { 
    return s.replace(/([\?&])([^=]+=($|&))+/g,'$1').replace(/[\?&]$/g,''); 
} 
arr.forEach(function(s) { 
    console.log(s,removeEmptyQueryParameters(s)); 
}); 
1

我认为这将是最语义正确的方法:

url = 'mydomain.com/?catid=' 
url = url.split('?') 
if (url.length > 1) { 
    params = url[1].split('&'); 
    params = params.map(function(e){ return e.split('='); }); 
    params = params.filter(function(e){ return (e.length > 1) && (e[1].length > 0); }); 
    url = url[0]; 
    if (params.length > 0) { 
     url += '?' + params.map(function(e){ return e.join('='); }).join('&'); 
    } 
} else { 
    url = url[0]; 
}