2012-07-16 63 views
0

我無法在javascript中替換一些url變量。我試圖替換&s=&so=的值。下面是我的代碼:Javascript替換表達式

url = url.replace(/(s=).*?(&)/, '$1' + $("#sort_by").val() + '$2'); 
url = url.replace(/(so=).*?(&)/, '$1' + $("#sort_ord").val() + '$2'); 

。第一替代作品沒有問題,s值總是代替,但是so變量似乎從來沒有被替換。

+2

你能舉個例子url嗎? – JJJ 2012-07-16 06:19:15

+0

你想做什麼?你爲什麼想這樣做?似乎對我錯了。 – 2012-07-16 06:25:24

回答

1

你的代碼改成這樣:

url = url.replace(/(s=)[^&]*/, '$1' + $("#sort_by").val()); 
url = url.replace(/(so=)[^&]*/, '$1' + $("#sort_ord").val()); 

這應該與大多數URL(而不是所允許的RFC所有URL)工作。這利用了&主要用於在URL的查詢字符串中分隔鍵值對的事實。

+0

'(&?)'或'(&| $)'; – poncha 2012-07-16 06:21:19

+0

@poncha:在URL中也有片段的可能性(儘管很少見到它與查詢一起)。它以任何方式失敗。 – nhahtdh 2012-07-16 06:23:06

+0

他們總是「&」(固定的url結構) - 嘗試改變,它仍然沒有工作:( – 2012-07-16 06:25:43