如何提取
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源代码中路径的代码。 也许我可以用他们的方式去剥离路径的中间部分?
答案 0 :(得分:0)
正如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);
答案 1 :(得分:0)
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);