2014-09-02 35 views
0

最後一個字符後,更換了一切:我已經使用JavaScript下面的代碼替換當前URL的URL

window.location.replace(window.location.href.replace(/\/?$/, '#/view-0'));

但是,如果我有這樣一個URL:

domain.com/#/testdomain.com/#/

它會將#/view-0附加到當前散列。我想要的是在包括任何查詢字符串或哈希的URL的最後部分之後替換所有東西。

因此,假設我的正則表達式不處理...我怎樣才能修改它,更積極?

回答

1

以下語法可以幫助:

location.href.replace(/[?#].*$/, '#/view') 

它將取代一切後(並連同)與#/view字符串中?#

+0

該替換工作正常。但是,這不再導致頁面刷新像我的代碼...任何想法,爲什麼? – Cameron 2014-09-02 09:54:44

+0

@Cameron您可以嘗試將該值分配回'location.href',即'location.href = location.href.replace(...)'。它應該執行重定向到所需的URL。 – VisioN 2014-09-02 09:56:06

+0

如果URL已經有一個哈希值,然後我運行這個替換代碼,它將它視爲一個hashchange,因此不會調用一個完整的刷新...如果我這樣做:'window.location.href = window.location .replace(window.location.href.replace(/[##].*$/,'#/ view-0'));'然後它重定向,但最終在URL中未定義。 – Cameron 2014-09-02 10:13:35