Я хотел бы удалить имя файла из пути, используя JavaScript - PullRequest
6 голосов
/ 29 сентября 2011

Используя Javascript, я хотел бы удалить имя файла в конце строки (путь + имя файла), оставив мне только путь к каталогу.

Были бы идеальными регулярные выражения?Или есть более простой способ сделать это, используя строковый объект?

Спасибо за любую помощь!

---- ОТВЕТСТВЕННЫЙ И ОБЪЯСНЕННЫЙ ---

Цельэтого кода было открыть поиск в каталоге.Данные, которые я смог извлечь, включали имя файла - так как я только пытался открыть искатель (mac) в этом месте, мне нужно было удалить имя файла.Вот что я закончил:

var theLayer = app.project.activeItem.selectedLayers[0];
//get the full path to the selected file
var theSpot = theLayer.source.file.fsName;
//strip filename from the path
var r = /[^\/]*$/;
var dirOnly = theSpot.replace(r, '');
//use 'system' to open via shell in finder
popen = "open"
var runit = system.callSystem(popen+" "+"\""+dirOnly+"\"");

Ответы [ 3 ]

21 голосов
/ 29 сентября 2011
var urlstr = '/this/is/a/folder/aFile.txt';
var r = /[^\/]*$/;
urlstr.replace(r, ''); // '/this/is/a/folder/'
10 голосов
/ 29 сентября 2011

Вы не указали ни одного примера ввода.

Если у вас всегда есть каталог, то сработает следующее.Требуется все до (но не включая) последнего слеша.

test = "/var/log/apache2/log.txt";
console.log(test.substring(0, test.lastIndexOf("/")));
7 голосов
/ 29 сентября 2011

Вы можете использовать подстроку и indexOf:

var url = 'asdf/whatever/jpg.image';
url.substring(0, url.lastIndexOf('/'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...