definierte ich einen Abfrage-String catid
als:aus einem leeren Abfrage-String entfernen url
mydomain.com/?catid=
Wie ?catid
in meiner URL zu entfernen, wenn es bitte leer ist?
definierte ich einen Abfrage-String catid
als:aus einem leeren Abfrage-String entfernen url
mydomain.com/?catid=
Wie ?catid
in meiner URL zu entfernen, wenn es bitte leer ist?
Der Code aus der sehr ähnlichen Frage von Jerome Brunel funktioniert nicht mit Ihrer speziellen Anfrage.
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));
});
Ich denke, es wird ist, das die semantisch korrekte Art und Weise:
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];
}
Können Sie etwas Code hinzufügen? Andernfalls lautet die Antwort auf Ihre Frage "Backslash drücken, bis dieser Teil gelöscht ist". – Bolza
Mögliches Duplikat von [alle leeren Werte von URL entfernen] (http://stackoverflow.com/questions/14624275/remove-all-empty-values-from-url) – jeerbl