2014-12-16 19 views
6

Nếu tôi có một đường dẫn tập tin như:Chia chuỗi các đường dẫn thư mục

var/www/parent/folder 

Làm thế nào tôi sẽ đi về loại bỏ các thư mục cuối cùng để trở lại:

var/www/parent 

Các thư mục có thể có bất kỳ tên, Tôi khá hài lòng khi sử dụng regex.

Xin cảm ơn trước.

+2

NodeJS hoặc môi trường trình duyệt? NodeJS có mô đun [Path] (http://nodejs.org/api/path.html). – tadman

Trả lời

9

Sử dụng cụm từ thông dụng sau đây để khớp với phần thư mục cuối cùng và thay thế bằng chuỗi trống.

/\/[^\/]+$/ 

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

CẬP NHẬT

Nếu đường dẫn kết thúc với /, biểu thức trên sẽ không phù hợp với con đường. Nếu bạn muốn loại bỏ phần cuối cùng của con đường như vậy, bạn cần phải sử dụng mẫu folloiwng (để phù hợp với tùy chọn cuối cùng /):

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

người đầu tiên làm việc vì tôi không thêm "/" vào cuối. Cảm ơn một lời xin lỗi nó đã làm cho tôi chờ đợi 5 phút cho đến khi tôi có thể chấp nhận như là câu trả lời:/ –

11

sử dụng split-> slice-> chức năng tham gia:

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

Dễ nhớ hơn nhiều so với giải pháp regex. – RayLuo

2

Nếu đó là lúc nào cũng là thư mục cuối cùng bạn muốn thoát khỏi, phương pháp đơn giản nhất là nên sử dụng substr()lastIndexOf():

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

jsfiddle example

Các vấn đề liên quan