2013-05-25 32 views
15

Tôi đang cố xóa phần thư mục cuối cùng của URL. URL của tôi trông giống như sau:xóa thư mục cuối cùng trong URL

https://my_ip_address:port/site.php?path=/path/to/my/folder.

Khi nhấp vào một nút, tôi muốn thay đổi điều này để

https://my_ip_address:port/site.php?path=/path/to/my. (Hủy bỏ phần cuối cùng).

Tôi đã cố gắng window.location.replace(/\/[A-Za-z0-9%]+$/, ""), mà kết quả trong

https://my_ip_address:port/undefined.

Tôi nên sử dụng Regex để làm điều này?

+1

Bạn cũng có thể thêm '/../'. LOL chỉ đùa thôi, đây là [thỏa thuận thực] (http://regex101.com/r/nZ4jU4) – HamZa

+1

@HamZaDzCyberDeV Tôi bỏ qua '.' trên đường đi để tránh tiêm. Nhưng cảm ơn cho liên kết của bạn! – pascalhein

+0

@HamZaDzCyberDeV Bằng cách nào đó tôi không biết cách sử dụng 'replace':' window.location.replace (/(.*)\/.*/, "\ 1"); 'kết quả trong' https: // my_ip_address: port /(.*)\/.*/ ' – pascalhein

Trả lời

22

Giải thích: Phát nổ bằng "/", xóa phần tử cuối cùng bằng pop, tham gia lại bằng "/".

function RemoveLastDirectoryPartOf(the_url) 
{ 
    var the_arr = the_url.split('/'); 
    the_arr.pop(); 
    return(the_arr.join('/')); 
} 

thấy fiddle http://jsfiddle.net/GWr7U/

+0

cảm ơn, hoạt động – pascalhein

+0

@csharpler vui lòng trợ giúp :) – Sharky

5

Để sử dụng mã này, loại bỏ yếu tố cuối cùng từ liên kết Url.

string url = Request.Url.ToString(); 
      string removelastdir = url.Substring(0, url.LastIndexOf('/')); 
+0

Điều này phù hợp với C#, nhưng không phải cho Javascript. – Dykotomee

+2

cho js: string removelastdir = url.substring (0, url.lastIndexOf ('/')); – SanR

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