2012-10-14 62 views
2

嗨,首先我已經環顧四周,但沒有什麼與我想要發生的事情相匹配,所以我問是否有人可以幫我解決這個問題。jquery查找並替換url中的最後一個參數

我有一個網址「/ view/album/4/photo/1」 我想刪除最後一個參數並將其替換爲某個東西。 我想要做的是找到最後一個「/」並刪除它後面的數字,並用新值替換它。

這很容易與PHP,但我不知道如何做到這一點在jQuery中,因爲我剛開始學習它。所以我非常感謝能夠幫助的人。 :)

順便說這是我在獲取URL代碼:

行動= $(形式).attr( '行動'); //「/視圖/專輯/ 4 /照片/ 1」

我不知道做什麼用的變量做些什麼來改變過去的PARAM

回答

5

試試這個:)http://jsfiddle.net/hE6MC/

ORhttp://jsfiddle.net/YwG6b/

API:http://www.w3schools.com/jsref/jsref_lastindexof.asp

BTW我KNW約:)http://w3fools.com

代碼

url = "/view/album/4/photo/1" 
var value = url.substring(url.lastIndexOf('/') + 1); 

alert(value); 

url = url.replace(value, 'hulk') 
alert("new url => " + url);​ 

另一種方式

var str = '/view/album/4/photo/1'; 
var i = str.lastIndexOf('/'); 
if (i != -1) { 
    str = str.substr(0, i) + "/new stuff"; 
} 

alert(str); 
​ 
+0

唉!我看到一個陷阱。如果'url =「/ view/album/4/photo/4」'怎麼辦? ':)' – Prasanth

+0

@goldenparrot謝謝你!另一種方式:http://jsfiddle.net/YwG6b/':)' –

+0

太棒了!非常感謝你。這是非常有用的,並有演示。謝謝一堆:) – user949000

3
var paths = location.pathname.split('/'); 
paths[ paths.length-1 ] = 'foo'; // new value 
location.pathname = paths.join('/'); 
+1

+ 1 man !!的確如此! ':)' –

1

容易和簡單的值:正則表達式。

action = (action.match(/(.*)\d+$/) == null) ? action : (action.match(/(.*)\d+$/)[1]+"2"); 

/view/album/4/photo/2 
+0

+1以及男人! ':)' –

+0

非常感謝!這很有趣:) – user949000

1

如果你只想要替換最後一個字符,你可以使用slice方法。

$('form').attr('action', function(i, a){ 
    a.slice(0, -1) + 'number' 
})