Odpowiedź brzmi: tak i nie.
Jak sugeruje pewna odpowiedź, można utworzyć element zakotwiczenia i użyć go do wykonania analizy składniowej, która jest w zasadzie natywnym kodem.
var url = document.createElement("A");
url.href = "http://stackoverflow.com/question?hello=world#foo";
console.log('// expected: "stackoverflow.com", "/question"');
console.log('// got: "' + url.hostname + '", "' + url.pathname + '"');
output --> got: "stackoverflow.com", "/question"
url.hash = "bar";
url.search = "";
console.log('// expected: "http://stackoverflow.com/question#bar"');
console.log('// got: "' + url.href + '"');
output --> got: "http://stackoverflow.com/question?#bar"
żywo demo: http://jsfiddle.net/roberkules/H48dt/
Jedyną różnicą jest to, że ten ? nie jest usuwany po opróżnieniu kwerendy.
z "API":
url.protocol
url.host
url.port
url.pathname
url.search
url.hash
możliwe duplikat [Jak analizować URL do nazwy hosta i ścieżki w javascript?] (Http://stackoverflow.com/questions/736513/how-do-i- parse-a-url-into-hostname-and-path-in-javascript) – Cameron
@Cameron Pytania mogą być podobne, ale biblioteka, z którą się łączyłem, nie istnieje na przykład (a może i inne rozwiązania). – deviousdodo
@draevor: Tak, najlepiej będzie zachować oba elementy (lub może je scalić, być może). – Cameron