2013-11-27 50 views
0

我有一個網址:JavaScript的 - 簡單,但病毒邏輯問題

domain.com/?page=2&show=10&sortterm=km 

如果我排序第二次,網址正在成爲

domain.com/?page=2&show=10&sortterm=km&sortterm=km 

我想要做的是:

1. see if url has "?" in it 
2. if yes, 
    2.1. see if "sortterm" exists in url 
    2.2. if yes, replace that "&sortterm=x" with new "&sortterm=y" 
    2.3. if not, add "&sortterm=y" 
3. if not 
    3.1 add "?sortterm=y" 

這是我的代碼:

var url = String(window.location); 
if(url.indexOf("?") !== -1){ 
    if(url.indexOf('sortterm') !== -1){ 
    var newurl = url +'&sortterm='+sortterm; 
    //^ but i need to replace here, and the value of sortterm can be different. 
    } 
... 
... 

我有點卡住了,請幫忙!

+1

你可以做'url.replace(/&sortterm = * /, '&sortterm =' + sortterm)'或類似的東西 – putvande

+0

@putvande,的Wooo,是它的工作代碼你寫在這裏?我不知道這件事,這很酷..我可以拿它嗎? – doniyor

+0

你必須檢查sortterm不是查詢後的第一個參數,雖然 – vogomatix

回答

2

url = url.replace(/([&?]sortterm=)[^&]*/, "$1" + sortterm) 
+0

哇,太好了!這是通用的,非常好的 – doniyor

+0

''$ 1''代表''()''裏面的全部內容,對吧? – doniyor

+0

@ doniyor:對,對。 – georg