2016-02-08 3 views
0

Как извлечьExtract часть пути от полного пути Javascript

pathB/pathC/pathD 

из

pathA/pathB/pathC/pathD/data.json 

приветствовать любую библиотеку третьей стороны или равнину Javascript

В некоторых грузчика WebPack таких как нг -cache-loader, я обнаружил, что они могут удалить среднюю часть пути, указав «//».

С нг-кэш-погрузчик Docs:

Приставка может обирать реальное имя каталога (использование //):

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

Я не могу найти код, который обрабатывать путь в ng- кэш-загрузчик. Может быть, я могу использовать то же самое, что сделал, чтобы разделить среднюю часть пути?

+0

Каков контекст вы будете делать это в? В основном я бы рассматривал его как синтаксический анализ строк с помощью доступных методов объектов String в JS или использование RegEx. – mzografski

ответ

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); 
+0

Ваш ответ ожидает, что часть извлечения уже известна. –

+0

Откуда вы знаете, где находится часть, которую вам нужно извлечь, и откуда вы знаете, где она заканчивается? Это все между первым «/» и последним «/»? – Zonedark

+0

Да, мне всегда нужно все между первым/и последним /, я отправил ответ –

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); 
Смежные вопросы