从完整路径 Javascript 中提取部分路径

Extract part of path from full path Javascript

本文关键字:路径 提取部 Javascript      更新时间:2023-09-26

如何提取

pathB/pathC/pathD

pathA/pathB/pathC/pathD/data.json

欢迎任何第三方库或纯JavaScript

在 webpack 的一些加载器(例如 ng-cache-loader)中,我发现它们能够通过指定"//"来剥离路径的中间部分。

来自 ng-cache-loader 文档:

前缀可以剥离实际目录名称(使用//):

require('ng-cache?prefix=public/*//*/templates!./far/far/away/path/to/myPartial.html')
// => ng-include="'public/far/path/templates/myPartial.html'"  

我找不到任何在 ng-cache-loader 源代码中处理路径的代码。也许我可以用他们所做的同样的方式来剥离路径的中间部分?

正如 mzografski 提到的,我将您的问题作为字符串解析问题来处理。你可以检查这个工作JSFIDDLE

法典:

$scope.ToExtract = 'pathB/pathC/pathD';
$scope.test = 'pathA/pathB/pathC/pathD/data.json';
$scope.extract = function(partToExtract, fullPath) {
    var index = fullPath.indexOf(partToExtract);
    return(fullPath.substring(0, index) + fullPath.substring(index+partToExtract.length+1, fullPath.length));
};
$scope.extract($scope.ToExtract, $scope.test);
var sep = '/';
var path = 'pathA/pathB/pathC/pathD/data.json';
path = path.split(sep);
path.shift();
path.pop();
path = path.join(sep);
// log pathB/pathC/pathD
console.log(path);