始终删除文件路径的特定部分

Consistently remove a certain part of a file path?

本文关键字:定部 路径 删除 文件      更新时间:2023-09-26

我有一个路径'app/resources/main/assets/templates/path/to/template',从路径中始终如一地删除'app/resources/main/assets/templates'只留下'path/to/template'的最佳方法是什么?目前,我正在使用splice并使用split连接最后5个数组项,但我可能有一些实例,其中路径可能更长,所以我希望能够可靠地始终删除'app/resources/main/assets/templates'

我的版本
var path = 'app/resources/main/assets/templates/path/to/template';
path.split('/').splice(-5, 5).join('/');

但如果 path = 'app/resources/main/assets/templates/path/to/subfolder/template' //want only path/to/subfolder/template

只是用Regex的不同视角:

console.log( /templates'/(.*)/.exec(path)[1] );

翻译:直到找到"模板",当找到时捕获它之后的所有内容。

获取以前的文件夹:

var newPaths = /(.*)templates(.*)/.exec( path );
console.log( newPaths[1] + 'templates' );
console.log( 'templates' + newPaths[2] );

您可以将基本路径存储在变量中,然后在每个路径中替换它,如下所示

var BASE_PATH = 'app/resources/main/assets/templates';
var path = 'app/resources/main/assets/templates/path/to/template';
var result = path.replace(BASE_PATH, '');
console.log(result);

与克里格斯相同趋势的答案。如果你想要隔离的模式总是以path/开头你可以像这样对字符串进行子集

var path = 'app/resources/main/assets/templates/path/to/template';
var pattern = /path'//;
var FirstOccurrence = path.search(pattern);
path = path.substring(FirstOccurrence,path.length);
console.log(path);