获取 URL 的最后两个参数 - javascript

Posted

技术标签:

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

我的网址是这样的

***.com/questions/ask/format/return

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

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

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

【问题讨论】:

【参考方案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 = "***.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://***.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 = "***.com/questions/ask/format/return",
  res = str.match(/.*\/(.*\/.*)/).pop();
  
console.log(res);

【讨论】:

以上是关于获取 URL 的最后两个参数 - javascript的主要内容,如果未能解决你的问题,请参考以下文章

从多个链接中获取 url 参数并将它们组合成一个 url

封装两个js从url获取相关参数的值和设置前端页面的Cookie和获取Cookie的值

python测试开发django-4.获取url参数和name的作用

从其他页面获取内容并使用 URL 参数

如何返回字符串的最后 2 个字符以外的所有字符?

从 URL 获取参数 slugs