Javascript 是否始终删除文件路径的某一部分?
我有一个路径Javascript 是否始终删除文件路径的某一部分?,javascript,arrays,Javascript,Arrays,我有一个路径'app/resources/main/assets/templates/path/to/template',从路径中删除'app/resources/main/assets/templates'的最佳方法是什么?目前,我正在使用Splite并连接使用split的最后5个数组项,但我可能会遇到路径更长的情况,因此我希望能够可靠地始终删除'app/resources/main/assets/templates' 我的版本 var path = 'app/resources/main/a
'app/resources/main/assets/templates/path/to/template'
,从路径中删除'app/resources/main/assets/templates'
的最佳方法是什么?目前,我正在使用Splite并连接使用split的最后5个数组项,但我可能会遇到路径更长的情况,因此我希望能够可靠地始终删除'app/resources/main/assets/templates'
我的版本
var path = 'app/resources/main/assets/templates/path/to/template';
path.split('/').splice(-5, 5).join('/');
但如果路径='app/resources/main/assets/templates/path/to/subfolder/template'//只需要path/to/subfolder/template您可以将基本路径存储在变量中,然后在需要的每个路径中替换它,就像这样
var BASE_PATH='app/resources/main/assets/templates';
var path='app/resources/main/assets/templates/path/to/template';
var result=path.replace(基本路径“”);
控制台日志(结果)代码>只是正则表达式的一个不同视角:
console.log( /templates\/(.*)/.exec(path)[1] );
翻译:直到找到“模板”,当找到后捕获所有内容
要同时获取以前的文件夹,请执行以下操作:
var newPaths = /(.*)templates(.*)/.exec( path );
console.log( newPaths[1] + 'templates' );
console.log( 'templates' + newPaths[2] );
答案与克里格斯的趋势相同。如果要隔离的模式总是以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);
改为删除前5个?因此这将输出/app/resources/main/assets/templates,如何删除起始/?@styler updated,added\/
,删除斜杠。当引用单个字符时,请在代码标记(/
)或字符的文字名称中使用,这样更容易理解。