gpt4 book ai didi

javascript - JS : Remove leading slashes, 来自相对路径的点

转载 作者:行者123 更新时间:2023-11-30 07:27:22 24 4
gpt4 key购买 nike

使用 Javascript 如何从相对路径中删除任意数量的“../”?

例如:

Before - '../../../folder1/folder2/my-file.php'
After - 'folder1/folder2/my-file.php'

Before - '../folder1/my-file.php'
After - 'folder1/my-file.php'

我在这里和 Google 搜索了多个关键字,但似乎找不到基于 Javascript 的解决方案,大多数是 PHP,这不是我需要的。另外,如果可能的话,我想避免使用正则表达式解决方案。

任何帮助将不胜感激,谢谢!

最佳答案

Also, I'd like to avoid a regex solution if possible.

在 JavaScript 中,正则表达式可能是执行此操作的最佳方式;但是您可以用循环代替:

var str = "../../../folder1/folder2/my-file.php";
var result = str;
while (result.substring(0, 3) === "../") {
result = result.substring(3);
}

使用正则表达式和String#replace:

var str = "../../../folder1/folder2/my-file.php";
var result = str.replace(/^(?:\.\.\/)+/, "");

该正则表达式表示:匹配字符串的开头 (^),然后是一个或多个 ../ 子字符串,并将它们替换为 ""(例如,什么都没有)。您需要在那里使用反斜杠,因为 ./ 都是正则表达式文字中的特殊字符,但我们希望它们实际上是 ./ 在你的字符串中。 (?:___) 结构将这三个字符组合在一起而不形成捕获组。

有关正则表达式的更多信息,请访问 MDC或者(非常清楚)在 specification 中.

关于javascript - JS : Remove leading slashes, 来自相对路径的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com