2012-07-16 67 views
5

Tôi đã tự hỏi liệu mình có thể xóa mọi thứ sau dấu hỏi trong URL không?jquery xóa mọi thứ sau dấu chấm hỏi trong url

http://www.site.com?some_parameters_continue_forever

tôi có thể chỉ cần sử dụng .remove()? Điều gì sẽ cần phải được đặt bên trong các thông số?

Cảm ơn

Trả lời

3

Bạn có thể sử dụng regex đơn giản này:

yourUrl.replace(/\?.+/, '') 

reomve() là dành cho DOM thứ.

4

Hãy thử đoạn này:

var url = "http://www.somexample.com?a=b&c=2&d=3"; 
url = url.substring(0 , url.indexOf('?')+1); 
+0

sẽ là có thể nếu tôi có thể thêm vào nhiều hơn là chỉ '?', Nói rằng nó sẽ kiểm tra '?' Hoặc một chữ cái khác như '&'? – hellomello

+0

điều này sẽ luôn luôn phù hợp với dấu hỏi đầu tiên trong url – amd

+0

tôi đã tự hỏi nếu thay thế không có '?' Và thay vào đó nó là một '&' thay thế. Tôi đã tự hỏi nếu nó có thể làm một điều như 'url.indexOf ('?', '&') + 1)' – hellomello

9

Kể từ khi url được điều khiển bởi các trình duyệt khi bạn thay đổi URL của trang sẽ được tải lại. Vẫn cho những gì bạn muốn làm, trên các trang mà bạn không cần những thứ sau khi loại ? dấu ..

window.location = "http://www.mysite.com" //or whatever your site url is 

Để tự động làm điều này bạn có thể sử dụng chức năng dưới đây và sau đó sử dụng window.location

function getPathFromUrl(url) { 
    return url.split("?")[0]; 
} 

Lưu ý: Khi bạn thay đổi url, trang sẽ làm mới.

+0

Một điều cần lưu ý (ngay cả khi câu trả lời là chính xác): có nó là hợp lệ để có nhiều hơn một dấu chấm hỏi trong một URL, xem http://stackoverflow.com/questions/2924160/is-it-valid-to-have-more-than-one-question-mark-in-a-url vì vậy nếu bạn muốn phần còn lại của chuỗi url, bạn không thể "chỉ" sử dụng 'url.split ("? ") [1];' –

+0

Btw, giải pháp để lấy phần còn lại của chuỗi url (chứa tất cả các tham số) sẽ là: ' url.substring (url.indexOf ('?') + 1); ' –

+0

đây là bản trình diễn trực tiếp nhanh http://jsbin.com/xikufatohi/1/edit?js,console –

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