let re = new RegExp(variable + "=" + ".*?(?=&|$)");
const result = url.replace(re, variable + "=" + newData);
Но данный вариант далеко не идеален/
я бы предпочел как то так:
let url = 'http://localhost/?a=1&b=2&test=Y&clear=allcache';
let re = /(\?|&)(.*?)\=(.*?)(?=&|$)/g;
const newdata = {
test: 333,
clear: 4444
};
function changeURL(url, keys) {
return url.replace(re, (a,prefix,key,val)=>{
if( keys[key] )
return prefix+key+"="+keys[key];
return prefix+key+"="+val;
});
}
url = changeURL(url, newdata);
console.log(url);