Javascript替换表达式

时间:2012-07-16 06:15:53

标签: javascript jquery

我在javascript中替换一些url变量时遇到了麻烦。我正在尝试替换&s=&so=的值。以下是我的代码:

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

第一个替换没有问题,s值总是被替换,但so变量似乎永远不会被替换。

1 个答案:

答案 0 :(得分:1)

将您的代码更改为:

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

这应该适用于大多数URL(但不是RFC允许的所有URL)。这利用了&主要用于在URL的查询字符串中分隔键值对的事实。