【问题标题】:How to get first two URL path segments?如何获取前两个 URL 路径段?
【发布时间】:2017-02-22 14:06:08
【问题描述】:

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

比如我想获取这个网址的前两个路径(如admin/password/):

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

【问题讨论】:

  • Angular 应用托管在哪里?在这个 Url 的根目录还是其他地方?您是否使用html5mode 中的$locationProvider 将散列从路径中取出?

标签: javascript angularjs url


【解决方案1】:

在“/”上分割网址

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

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

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

【讨论】:

    【解决方案2】:

    来自Angular $location service

    url([url]);

    不带任何参数调用时返回 URL。

    像这样使用它:

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

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

    【讨论】:

      【解决方案3】:

      您可以使用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/"
      

      【讨论】:

        【解决方案4】:

        您可以使用RegExp 来完成。

        var str = 'http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514';
        
        var reg = str.match(/(?!:\d+)(\/\w+)(\/\w+)/g);
        
        console.log(reg.toString().split('/').slice(1));

        【讨论】:

          猜你喜欢
          • 2020-04-13
          • 2011-07-30
          • 2017-01-09
          • 2019-07-23
          • 2021-01-14
          • 2021-07-23
          • 2021-04-12
          • 2013-10-27
          • 2011-07-31
          相关资源
          最近更新 更多