用javascript替换字符串的一部分?

用javascript替换字符串的一部分?,javascript,string,Javascript,String,假设我有一个URL,看起来像这样: 我已经在javascript中将其变为变量,但现在我想将“param2:set2”更改为“param2:set5”或其他任何内容。我如何抓住绳子的那一部分并改变它 需要注意的是,字符串中“param2…”的位置以及“:”后面的字符数可能会发生变化。我知道我可以使用子串来从前面获取字符串的一部分,但是我不知道如何从结尾或中间的任何地方抓取它。使用正则表达式;p> 使用正则表达式;) 这个怎么样 >>> var url = 'http://ww

假设我有一个URL,看起来像这样:

我已经在javascript中将其变为变量,但现在我想将“param2:set2”更改为“param2:set5”或其他任何内容。我如何抓住绳子的那一部分并改变它

需要注意的是,字符串中“param2…”的位置以及“:”后面的字符数可能会发生变化。我知道我可以使用子串来从前面获取字符串的一部分,但是我不知道如何从结尾或中间的任何地方抓取它。

使用正则表达式;p> 使用正则表达式;)

这个怎么样

>>> var url = 'http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/';
>>> url.replace(/param2:[^/]+/i, 'param2:set5'); 
"http://www.mywebsite.com/param1:set1/param2:set5/param3:set3/"
这个怎么样

>>> var url = 'http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/';
>>> url.replace(/param2:[^/]+/i, 'param2:set5'); 
"http://www.mywebsite.com/param1:set1/param2:set5/param3:set3/"

您可以将正则表达式传递给javascript中的match()和replace()函数。

您可以将正则表达式传递给javascript中的match()和replace()函数。

+1-但冒号后面不能有非数字、非单词字符,但在下一个正斜杠之前吗,这只是一个如何处理这个问题的简单例子。用户应该根据自己的需要使用它:)+1-但是冒号后面不能有非数字、非单词字符,但在下一个正斜杠之前吗?好吧,这只是一个如何处理这个问题的简单示例。用户应根据自己的需要采用:)
var key = "param2";
var newKey = "paramX";
var newValue = "valueX";

var oldURL = "http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/";

var newURL = oldURL.replace( new RegExp( key + ":[^/]+" ), newKey + ":" + newValue);