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

时间:2016-02-08 10:53:16

标签: javascript angularjs webpack

如何提取

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源代码中路径的代码。 也许我可以用他们的方式去剥离路径的中间部分?

2 个答案:

答案 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);