我在javascript中替换一些url变量时遇到了麻烦。我正在尝试替换&s=
和&so=
的值。以下是我的代码:
url = url.replace(/(s=).*?(&)/, '$1' + $("#sort_by").val() + '$2');
url = url.replace(/(so=).*?(&)/, '$1' + $("#sort_ord").val() + '$2');
第一个替换没有问题,s
值总是被替换,但so
变量似乎永远不会被替换。
答案 0 :(得分:1)
将您的代码更改为:
url = url.replace(/(s=)[^&]*/, '$1' + $("#sort_by").val());
url = url.replace(/(so=)[^&]*/, '$1' + $("#sort_ord").val());
这应该适用于大多数URL(但不是RFC允许的所有URL)。这利用了&
主要用于在URL的查询字符串中分隔键值对的事实。