2015-05-21 125 views
1

有沒有AngularJS的方法,並獲得一個URL路徑減去所有參數?我不想從地址欄中獲取它,我有一個var值,其中的值是我想要的路徑的URL。獲取無parmaters的位置路徑

打開本:var url1 = http://domain.com/dir1/dir2/?param1=123&param2=456

進入這個:/dir1/dir2/

這只是想與參數返回的路徑:

var justPathLocation = $location.path(); 

回答

1

window.location.pathname回報正是你需要的。

在這個網址:

HTTP://stackoverflow.com/questions/30385367/get-location-path-without-parmaters/30386013#30386013?param=value

它返回此:

"https://stackoverflow.com/questions/30385367/get-location-path-without-parmaters/30386013" 

因此,它只返回路徑名稱,沒有查詢字符串或片段標識符。


UPDATE

這裏是一個正則表達式的方法,它使用的域名,可以其硬編碼或提取採用了window.location.hostname

var url = "http://domain.com/dir1/dir2/?param1=123&param2=456"; 
 

 
alert(url.match(/http:\/\/domain\.com(.*)\?/)[1]);

和更通用方法 - ^.*\/\/.*?(\/.+)\?

var url = "http://domain.com/dir1/dir2/?param1=123&param2=456"; 
 

 
alert(url.match(/^.*\/\/.*?(\/.+)\?/)[1]);

+0

謝謝!我真正需要做的事情是獲取var中已經存在的地址,並將其轉換爲路徑而不是抓取地址欄中的內容。如果可能的話,我更喜歡使用Angular,但如果它是簡短的jQuery或純JS是很好的。該網站使用沉重的角度,這就是爲什麼我想堅持下去。 – Scott

+0

不客氣!由於Angular是一個JS框架,使用普通JS會給你相同甚至更好的性能。你需要一個字符串操作,我認爲正則表達式是最簡單的方法。你知道該怎麼做? – Shomz

+0

非常感謝,效果很棒!我試圖弄清楚[1]做了什麼?我認爲這是索引位置,但它爲什麼需要這個?再次感謝正則表達式! – Scott