2013-11-27 2 views
0

У меня есть URL:Javascript - простой, но вирусный логический вопрос

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

Если я сортирую во второй раз, URL становится

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

Смежные вопросы