【问题标题】:Delete all text up to a character [duplicate]删除最多一个字符的所有文本[重复]
【发布时间】:2020-08-10 23:12:30
【问题描述】:

我目前有一个这样的 url 路径:

var str = "http://stackoverflow.com/i-like-upvotes/you-do-too";

我希望删除/删除直到最后一个 / 斜杠的所有字符串。

如果我想替换最后一个斜杠,我会这样:

console.log(str.replace(/\/(?=[^\/]*$)/, '#'));

但我想删除最后一个斜线之前的所有内容,但我无法弄清楚。 在上面的例子中我会回来

you-do-too

有什么想法吗?

【问题讨论】:

  • 已修复,谢谢! @Barmar

标签: javascript regex


【解决方案1】:

var str = "http://stackoverflow.com/i-like-upvotes/you-do-too";
console.log(str.replace(/^.*\//, ''));
  • ^ 匹配字符串的开头。
  • .* 匹配任何内容。
  • \/ 匹配斜线。

由于.* 是贪心的,这将匹配到最后一个斜线的所有内容。我们通过替换为空字符串来删除它。

【讨论】:

    【解决方案2】:

    我知道它不漂亮,但您可以通过str.split('/').pop() 获取 URL 的最后一部分。
    没有非人类可读的正则表达式

    【讨论】:

    • 有些人喜欢不漂亮的东西,只要它有效。这就是我妻子选择我的原因!
    猜你喜欢
    • 2011-05-30
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多