2012-02-04 30 views
8

Tôi đã xem xét vấn đề này nhưng tôi không thể tìm thấy bất kỳ câu trả lời chắc chắn nào cho mục đích cụ thể này. Hãy nói rằng tôi có một URL của ...Làm cách nào để xóa các biến và tên tệp khỏi URL bằng javascript/jquery?

http://mysite.com/stuff/index.php?search=my+search

Làm thế nào tôi có thể lấy URL này và loại bỏ index.php? Search = tìm kiếm + của tôi từ nó để nó chỉ sẽ là http://mysite.com/stuff/? Về cơ bản, tôi chỉ muốn lấy URL gốc mà không có tên tệp hoặc nhận biến ... Bất kể URL là gì (vì vậy tôi không phải tùy chỉnh chức năng cho mỗi trang tôi muốn sử dụng)

Vì vậy, một ví dụ khác, nếu nó chỉ là ...

http://mysite.com/silly.php?hello=ahoy

tôi sẽ chỉ muốn trở về thư mục gốc của http://mysite.com

bất cứ ai có thể cho tôi một tay trong figuring this out? Tôi hoàn toàn lạc mất.

Trả lời

17

Hãy thử sử dụng lastIndexOf("/"):

var url = "http://mysite.com/stuff/index.php?search=my+search"; 
url = url.substring(0, url.lastIndexOf("/") + 1); 
alert(url); // it will be "http://mysite.com/stuff/" 

HOẶC

var url = "http://mysite.com/silly.php?hello=ahoy"; 
url = url.substring(0, url.lastIndexOf("/") + 1); 
alert(url); // it will be "http://mysite.com/" 
+0

Cảm ơn, tôi tưởng tượng tôi sẽ sử dụng lastIndexOf liên tục ngay bây giờ. – Ian

+0

Vui lòng trợ giúp .. – Aliostad

+0

'console.log (url)' là nhiều, tốt hơn nhiều so với cảnh báo. – Tim

0

Bạn đang tìm kiếm location.host hoặc location.hostname. Nhưng bạn có muốn trích xuất chúng từ một chuỗi hoàn chỉnh thay vì từ URL hiện tại không?

Tôi đọc những câu hỏi một lần nữa và có vẻ như bạn muốn có được chuỗi trong đó bao gồm:

location.protocol + "//" + location.host + location.pathname 

phải không?

+4

'location.pathname' sẽ chứa' index.php' –

2

Nếu url của bạn là trong str:

newstr = str.replace(/\/[^\/]+$/,""); 

newstr bây giờ chứa con đường lên đến nhưng không bao gồm người cuối cùng / trong chuỗi. Để giữ cho thức /, sử dụng:

newstr = str.replace(/\/[^\/]+$/,"/"); 
2

chia vào "/", loại bỏ những mảnh cuối cùng, tham gia cùng họ trở lại, thêm trailing slash.

var path = location.href.split('/'); 
path.pop(); 
path = path.join("/") + "/"; 
Các vấn đề liên quan