假设您有这个字符串:url?param1=something¶m2=something¶m3=something
,它也可以只有url?param1=something
。
如何将param1=something
转换为param1=anotherthing
?
我能够这样做:
var regex = /param1=.*(&|$)/;
var string = 'url?param1=something¶m2=something¶m3=something';
var newValue = 'anotherthing';
string.replace(regex, 'param1='+newValue);
但是,我不喜欢重复所有搜索字词的事实,所以我问是否可以将所需的模式分组以进行替换,在这种情况下将.*
并且仅替换这一点。
例如,说$ 1属于第1组。这是虚构的。
var regex = /param1=(.*)(&|$)/;
var string = 'url?param1=something¶m2=something¶m3=something';
var newValue = 'anotherthing';
string.replace(regex, $1, newValue);
答案 0 :(得分:2)
试试这个:
var string = 'url?param1=something¶m2=something¶m3=something';
alert(string.replace(/(param1)([^&]+)/, '$1=newparam1'));
如果要将多个参数设置为相同的值
alert(string.replace(/(param1|param2)([^&]+)/g, '$1=newparam'));
答案 1 :(得分:0)
添加另一个捕获组...
var regex = /(param1=)([^&]*)/;
var string = 'url?param1=something¶m2=something¶m3=something';
var newValue = 'anotherthing';
string.replace(regex, "$1" + newValue);