0

此代码接受 apath/to/folder或 a path/to/folder/(注意尾部斜杠)并提取字符串中最后一个文件夹的名称,即:

path = 'path/to/folder'.split('/');
folder = path.pop() || path.pop(); // taking care of trailing slash

// folder == 'folder'

我很好奇,有没有可能把它变成单线?我会很感激正则表达式和非正则表达式的答案:)

作为旁注,我刚刚意识到我的代码不知道如何处理多个斜杠(如错字) - 所以如果你也能考虑到这一点,我将不胜感激。

编辑:我真的希望看到一个非正则表达式的答案

4

2 回答 2

1

在现代浏览器中,您可以执行以下操作:

folder = (path + '/').split(/\/+|\\+/).slice(0, path.split(/\/+|\\+/).indexOf(''));

代码句柄也反斜杠,甚至与斜杠混合。一个简单的小提琴

于 2013-06-05T09:01:05.750 回答
1

我认为这就是你想要的:

path = 'path/to/folder';
folder = path.match(/\/([^\/]+)[\/]*$/)[1]

应该使用或不使用斜杠,也应该使用两个斜杠。

于 2013-06-05T08:10:35.773 回答