在javascript中搜索并替换特定的查询字符串参数值

Top*_*der 35 javascript search design-patterns replace match

我有一个字符串,如下所示:

a_href= "www.google.com/test_ref=abc";
Run Code Online (Sandbox Code Playgroud)

我需要在上面的strinng中搜索test_ref = abc并用新值替换它

var updated_test_ref = "xyz";

a_href ="www.google.com/test_ref=updated_test_ref" 
Run Code Online (Sandbox Code Playgroud)

www.google.com/test_ref=xyz.
Run Code Online (Sandbox Code Playgroud)

我们应该怎么做 ?

编辑:

test_ref值本身可以是一个URL链接,例如http://google.com?param1=test1m2=test2.我需要捕获完整的价值,直到第一次.

Mar*_*ahn 56

a_href = a_href.replace(/(test_ref=)[^\&]+/, '$1' + updated_test_ref);
Run Code Online (Sandbox Code Playgroud)

  • 实际上,我认为更好的方法是使用/([?|&] test_ref =)[^ \&] + /因为你可以有另一个以test_ref结尾的参数 (14认同)
  • 说明:字面匹配字符串"test_ref =",后跟一个或多个不是查询字符串参数分隔符("&")的东西,并替换为捕获的匹配("test_ref ="),后跟值变量`updated_test_ref`. (8认同)
  • @TopCoder - 这是一个不需要问的问题类型.只需获取Firebug并在控制台中自行测试."如果......会发生什么?" 几乎从来都不是一个好问题.就试一试吧. (2认同)