【问题标题】:Split string of folder path拆分文件夹路径字符串
【发布时间】:2015-02-15 01:33:10
【问题描述】:

如果我有一个文件路径,例如:

var/www/parent/folder

我将如何删除最后一个要返回的文件夹:

var/www/parent

文件夹可以有任何名称,我很高兴使用正则表达式。

提前致谢。

【问题讨论】:

  • NodeJS 还是浏览器环境? NodeJS 有 Path 模块。

标签: javascript regex string


【解决方案1】:

使用以下正则表达式匹配最后一个目录部分,并将其替换为空字符串。

/\/[^\/]+$/

'var/www/parent/folder'.replace(/\/[^\/]+$/, '')
// => "var/www/parent"

更新

如果路径以/ 结尾,则上面的表达式将与路径不匹配。如果要删除此类路径的最后一部分,则需要使用以下模式(匹配可选的最后一个/):

'var/www/parent/folder/'.replace(/\/[^\/]+\/?$/, '')
// => "var/www/parent"

【讨论】:

  • 第一个有效,因为我没有在末尾添加“/”。谢谢抱歉,这让我等了 5 分钟,直到我可以接受作为答案:/
【解决方案2】:

使用 split->slice->join 函数:

"var/www/parent/folder".split( '/' ).slice( 0, -1 ).join( '/' );

【讨论】:

  • 比正则表达式更容易记住。
【解决方案3】:

如果它始终是您想要删除的 last 文件夹,最简单的方法是使用 substr()lastIndexOf()

var parentFolder = folder.substr(0, folder.lastIndexOf('/'));

jsfiddle example

【讨论】:

    【解决方案4】:

    这不是split 本身的特殊版本,但您可以像这样通过path.sep 进行拆分:

    import path from 'path';
    
    filePath.split(path.sep);
    
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-28
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多