2012-07-16 3 views

Odpowiedz

3

Można użyć tego prostego wyrażenia regularnego:

yourUrl.replace(/\?.+/, '') 

reomve() jest dla DOM rzeczy.

4

Spróbuj tego fragmentu:

var url = "http://www.somexample.com?a=b&c=2&d=3"; 
url = url.substring(0 , url.indexOf('?')+1); 
+0

byłoby to możliwe, gdybym mógł dodać więcej niż tylko "?", Powiedzieć, że sprawdzi '?' Lub inną literę, np. '&'? – hellomello

+0

to zawsze będzie pasować do pierwszego znaku zapytania w url – amd

+0

zastanawiałem się, czy w zamian nie ma '?', A zamiast tego jest zamiast niego '&'. Zastanawiam się, czy możliwe jest zrobienie czegoś takiego jak 'url.indexOf ('?', '&') + 1)' – hellomello

9

Ponieważ url jest sterowany przez przeglądarkę po zmianie url strona będzie przeładować. Wciąż za to, co chcesz zrobić, na stronach, na których nie potrzebują rzeczy po rodzaju ? znaku ..

window.location = "http://www.mysite.com" //or whatever your site url is 

Aby to zrobić dynamicznie można użyć funkcji poniżej, a następnie użyj window.location

function getPathFromUrl(url) { 
    return url.split("?")[0]; 
} 

Uwaga: Po zmianie adresu URL strona zostanie odświeżona.

+0

Jedna rzecz do zapamiętania (nawet jeśli odpowiedź jest prawidłowa): tak, ważne jest, aby mieć więcej niż jeden znak zapytania w adresie URL, zobacz http://stackoverflow.com/questions/2924160/is-it-valid-to-have-more-than-one-question-mark-in-a-url, więc jeśli chcesz resztę ciągu url, nie możesz "po prostu" użyć 'url.split ("? ") [1];' –

+0

Btw, rozwiązanie, aby uzyskać resztę ciągu url (zawierające wszystkie parametry) byłoby: ' url.substring (url.indexOf (?? ') + 1); ' –

+0

tutaj jest szybkie demo na żywo http://jsbin.com/xikufatohi/1/edit?js,console –