【问题标题】:How to slice a String object until it reaches "/" mark?如何对字符串对象进行切片,直到它到达“/”标记?
【发布时间】:2013-11-15 11:54:02
【问题描述】:

我有一个链接"http://client.local/#/wiki/revision/new/1",我想删除它的所有内容,只留下id(示例中为"1")。现在我知道这可以使用 JavaScript 的 slice() 函数来完成,但是无论 id 包含多少个字母,它都必须从末尾切到 / 符号。

我该怎么做?

【问题讨论】:

  • ID是数字1吗?
  • id是什么部分? /1?
  • 在给定的示例中,ID1,是的。

标签: javascript string url


【解决方案1】:

您可以使用正则表达式:

var id = url.match(/[^\/]*$/)[0];

或拆分:

var id = url.split('/').pop();

使用正则表达式可以更好地轻松控制。例如,如果您想在最后一个 / 后面的内容不是由数字组成时失败,请执行

var m = url.match(/\/(\d+)$/)
if (m) {
    var id = m[1];
    ...
} else {
    // bad URL, let's handle the error
}

【讨论】:

    【解决方案2】:

    又一个变种

    var id = url.substring(url.lastIndexOf('/')+1)
    

    【讨论】:

      【解决方案3】:

      您正在寻找split 而不是slice

      var id = "http://client.local/#/wiki/revision/new/1234".split('/').pop();
      

      【讨论】:

      • 你的回答不是表明它只会在id 是一个字符长的情况下离开吗?
      • 不,split 函数在每个 '/' 处分割字符串 st,id 将是最后一个 '/' 之后的所有内容
      【解决方案4】:

      鉴于javascript正则表达式默认是贪婪的,你可以这样做:

      var id = url.replace(/.*\//,'');
      

      这将返回最后一个'/'之后的所有内容。

      【讨论】:

        猜你喜欢
        • 2012-07-13
        • 2023-04-03
        • 2021-03-12
        • 2014-07-08
        • 1970-01-01
        • 2012-11-20
        • 2011-12-03
        • 1970-01-01
        • 2012-12-25
        相关资源
        最近更新 更多