【问题标题】:Get the last substring separated with / [duplicate]获取用 / 分隔的最后一个子字符串 [重复]
【发布时间】:2019-11-10 12:08:27
【问题描述】:

目前使用我的代码:

window.location.pathname.split('/')[3]

我可以从以下方面得到“比较”:

http://localhost/study/78/comparative

但可能会在 URI 中添加一些子目录。

如何获取以/ 分隔的URI 上的最后一个子字符串(最右边)?

【问题讨论】:

  • window.location.pathname.split('/').pop()
  • x.substr(x.lastIndexOf("/") + 1); 是一种方式
  • 我更喜欢 Alex 的更好、更少的说明。虽然我个人更喜欢String.prototype.slice() 而不是String.prototype.substr()
  • window.location.pathname.split("/").slice(-1)[0]; 是一种方式
  • 另一个(但效率稍低)window.location.pathname.split('/').reverse()[0]

标签: javascript


【解决方案1】:

用切片试试

window.location.pathname.split('/').slice(-1)[0]

console.log("http://localhost/study/78/comparative".split('/').slice(-1)[0])

【讨论】:

  • 谢谢。这是第一个。与slice(-1).pop()相比,我更喜欢使用更少的方法(仅slice(-1)[0]
  • @pmiranda 或者只是 split('/').pop() 我建议...
【解决方案2】:

window.location.pathname.split('/').slice(-1)[0]

window.location.pathname.split('/').pop()

window.location.pathname.substr(window.location.pathname.lastIndexOf("/") + 1)

【讨论】:

  • 如果你要打电话给.pop().slice(-1) 有什么意义?
  • slice() 方法将数组中的选定元素作为新数组对象返回。并且 pop() 方法删除数组的最后一个元素,并返回该元素。 .slice(-1) 返回一个包含最后一个子字符串的数组,.pop() 拉出子字符串的值。 @托马斯
  • 为什么不直接从 .split('/') 返回的数组中获取最后一个值呢?为什么你需要在这里.slice(-1)?喜欢window.location.pathname.split('/').pop()
  • @Robin Thomas 的意思是,您已经有一个数组,您可以在调用 .slice(-1) 之前使用 .pop() 在其上“提取子字符串的值”
  • 我现在明白了,使用split时不需要切片,拆分本身返回子字符串数组。 @PatrickRoberts
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 2020-09-13
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多