2012-07-16 59 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