2015-05-21 54 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