【发布时间】:2015-02-15 01:33:10
【问题描述】:
如果我有一个文件路径,例如:
var/www/parent/folder
我将如何删除最后一个要返回的文件夹:
var/www/parent
文件夹可以有任何名称,我很高兴使用正则表达式。
提前致谢。
【问题讨论】:
-
NodeJS 还是浏览器环境? NodeJS 有 Path 模块。
标签: javascript regex string
如果我有一个文件路径,例如:
var/www/parent/folder
我将如何删除最后一个要返回的文件夹:
var/www/parent
文件夹可以有任何名称,我很高兴使用正则表达式。
提前致谢。
【问题讨论】:
标签: javascript regex string
使用以下正则表达式匹配最后一个目录部分,并将其替换为空字符串。
/\/[^\/]+$/
'var/www/parent/folder'.replace(/\/[^\/]+$/, '')
// => "var/www/parent"
更新
如果路径以/ 结尾,则上面的表达式将与路径不匹配。如果要删除此类路径的最后一部分,则需要使用以下模式(匹配可选的最后一个/):
'var/www/parent/folder/'.replace(/\/[^\/]+\/?$/, '')
// => "var/www/parent"
【讨论】:
使用 split->slice->join 函数:
"var/www/parent/folder".split( '/' ).slice( 0, -1 ).join( '/' );
【讨论】:
如果它始终是您想要删除的 last 文件夹,最简单的方法是使用 substr() 和 lastIndexOf():
var parentFolder = folder.substr(0, folder.lastIndexOf('/'));
【讨论】:
这不是split 本身的特殊版本,但您可以像这样通过path.sep 进行拆分:
import path from 'path';
filePath.split(path.sep);
【讨论】: