2014-12-16 5 views
6

Если у меня есть путь к файлу, такие как:Split строка путь к папке

var/www/parent/folder 

Как бы я идти об удалении последней папки для возврата:

var/www/parent 

Папки могут иметь любые имена, Я очень доволен использованием регулярного выражения.

Заранее спасибо.

+2

NodeJS или среда браузера? NodeJS имеет модуль [Path] (http://nodejs.org/api/path.html). – tadman

ответ

9

Используйте следующее регулярное выражение для соответствия последней части каталога и замените его на пустую строку.

/\/[^\/]+$/ 

'var/www/parent/folder'.replace(/\/[^\/]+$/, '') 
// => "var/www/parent" 

UPDATE

Если путь заканчивается /, приведенное выше выражение не соответствует пути. Если вы хотите, чтобы удалить последнюю часть такого пути, вам нужно использовать folloiwng шаблон (чтобы соответствовать желанию последней /):

'var/www/parent/folder/'.replace(/\/[^\/]+\/?$/, '') 
// => "var/www/parent" 
+0

первый работал как я не добавляю «/» на конце. Спасибо, извините, это заставило меня подождать 5 минут, пока я не смог принять в качестве ответа:/ –

11

использовать сплит> slice-> присоединиться к функции:

"var/www/parent/folder".split('/').slice(0, -1).join('/'); 
+0

Намного легче запомнить, чем решение регулярных выражений. – RayLuo

2

Если это всегда последний папку, которую вы хотите избавиться, самый простой метод будет использовать substr() и lastIndexOf():

var parentFolder = folder.substr(0, folder.lastIndexOf('/')); 

jsfiddle example

Смежные вопросы