2010-09-05 279 views
1

我認爲這是微不足道的,但沒能解決它:(在URL字符串替換使用javascript

我想改變畝傳遞的url,使用JavaScript PARAM。

var fullurl = window.location; 
//do dome stuff to find var url. 
fullurl.replace(/sort:.*\/direction:.*/g,'sort:' + url + '/direction:asc'); 

基本上沒有一個網址,如:。http://example.com/article/http://example.com/article/sort:author/direction:asc

我我什麼都不想第一個改變的情況在第二個我想更換sort:sort:url

上面的代碼似乎沒有做任何事情。我認爲問題是,正則表達式不解析,並且它返回一個網址.*\/裏面

任何幫助嗎?謝謝

回答

1

window.location是包含以下屬性的對象:

.hash 
.host 
.hostname 
.href 
.pathname 
.port 
.protocol 
.search 

你可能要解析href字符串。我做了一個初步測試,在那裏我挖掘了URL的期望,替換工作除了你沒有指出url是什麼。否則,嘗試在一個控制檯執行以下操作:

x = window.location.href 
url = "SomeValue" 
y = x.replace(/sort:.*\/direction:.*/g, 'sort:' + url + '/direction:asc') 

你應該得到的結果你期望假設你檢查y和不是X,因爲替換操作返回結果並不會改變物體本身。

1

window.location不是一個字符串,它是一個隱式轉換爲字符串的特殊對象。此外,string.replace返回新值,它不會更改原始字符串。嘗試是這樣的:

var fullurl = window.location.toString(); 
//do dome stuff to find var url. 
window.location = fullurl.replace(/sort:.*\/direction:.*/g,'sort:' + url + '/direction:asc');