获取 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的主要内容,如果未能解决你的问题,请参考以下文章
封装两个js从url获取相关参数的值和设置前端页面的Cookie和获取Cookie的值