如何获得前两个URL路径段?

时间:2017-02-22 14:06:09

标签: javascript angularjs url

如何使用AngularJS获取URL的前两部分?

例如,我想获得此网址的两个第一个路径(admin/password/):

http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514

4 个答案:

答案 0 :(得分:1)

将网址拆分为“/”

url = window.location.href.split("/")

现在您将每个单词放在一个单独的数组项中,然后您可以将它们组合成一个字符串,如

console.log(url[0] + url[1] + url[2]);

答案 1 :(得分:1)

来自Angular $location service

  

<强> url([url]);

     

在没有任何参数的情况下调用时返回URL。

像这样使用:

$scope.currentUrl = $location.url();

如果您不需要整个网址,只需split it

答案 2 :(得分:0)

您可以使用URL获取路径名,然后在/上拆分并获取所需的2个段:

var url = "http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514";
var pathParts = new URL(url).pathname.split('/'); //["", "admin", "password", "57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514"]

pathParts.slice(1, 3).join('/') + '/'; //"admin/password/"

答案 3 :(得分:0)

您可以使用RegExp

&#13;
&#13;
var str = 'http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514';

var reg = str.match(/(?!:\d+)(\/\w+)(\/\w+)/g);

console.log(reg.toString().split('/').slice(1));
&#13;
&#13;
&#13;