0
Q
从URL
A
回答
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];
}
相关问题
你可以添加一些代码吗?否则,您的问题的答案是“按反斜杠,直到该部分被删除”。 – Bolza
[从url中删除所有空值]的可能重复(http://stackoverflow.com/questions/14624275/remove-all-empty-values-from-url) – jeerbl