【问题标题】:Get last two params of an URL - javascript获取 URL 的最后两个参数 - javascript
【发布时间】:2019-02-11 13:18:55
【问题描述】:

我的网址是这样的

stackoverflow.com/questions/ask/format/return

我只需要从上面的 URL 获取 format/return。我能够将完整的 URL 分配给变量。目前我正在split做这件事

url.split("/")[4]
url.split("/")[5]

这不是通用的。实现这一目标的更好方法是什么?

【问题讨论】:

    标签: javascript arrays url split slice


    【解决方案1】:
    var parts = url.split("/");
    lastTwo = [parts.pop(), parts.pop()].reverse().join("/");
    

    【讨论】:

      【解决方案2】:

      查找最后一个和倒数第二个值:

      let spl = url.split("/");
      alert(spl[spl.length-2]+' and '+spl[spl.length-1]);
      

      【讨论】:

        【解决方案3】:

        只需使用长度来帮助您从末尾开始索引:

        var res = url.split('/')
        var last = res[res.length-1]
        var pre_last = res[res.length-2]
        

        【讨论】:

          【解决方案4】:

          基因解决方案,

          Var URL = url.split("/"); //

          Last = URL[URL.length-1]; // 返回

          LastBefore = URL[URL.length-1]; //格式

          url = "stackoverflow.com/questions/ask/format/return"
          
          URL = url.split("/"); 
          console.log(URL[URL.length-1]) // return 
          console.log(URL[URL.length-2]) //format

          【讨论】:

            【解决方案5】:

            我会将 url 解析为 URL,然后在路径名上使用 match。这样,如果您的网址中有任何搜索参数(?foo=bar),它也将起作用

            const s = "https://stackoverflow.com/questions/ask/format/return";
            const uri = new URL(s);
            const m = uri.pathname.match(/([^\/]*)\/([^\/]*)$/);
            console.log(m);

            请注意,您将获得一个包含三个条目的数组 - 0 是组合路径,1 是第一个参数,2 是最后一个参数。

            【讨论】:

              【解决方案6】:

              执行此操作的最短、最简洁的方法是在拆分后的 URL 上使用 slice

              url.split("/").slice(-2).join("/")
              

              【讨论】:

                【解决方案7】:

                您可以使用简单的regex /.*\/(.*\/.*)/) 准确提取您想要的内容。

                str.match(/.*\/(.*\/.*)/).pop()
                

                var str = "stackoverflow.com/questions/ask/format/return",
                  res = str.match(/.*\/(.*\/.*)/).pop();
                  
                console.log(res);

                【讨论】:

                  猜你喜欢
                  • 2020-06-29
                  • 2021-01-14
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-06-27
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多