我有这根绳子
/results?radius=4000&newFilter=true我需要将radius=4000替换为radius=n,其中n是变量。
如何使用正则表达式的String.replace()方法来匹配该部分?
发布于 2017-04-07 15:13:25
您可以使用/radius=\d+/来匹配"radius=“,后面跟着任意数量的数字。使用此方法,我们可以使用replace()方法将其替换为所需的值:
var str = "/results?radius=4000&newFilter=true";
var replacement = 123;
var newStr = str.replace(/radius=\d+/, "radius=" + replacement);
console.log(newStr);
发布于 2017-04-07 15:28:51
如果您想获得所有参数,可以尝试如下:
function getParams(uri) {
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(uri)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
}
var str='/results?radius=4000&newFilter=true';
str = str.substring(str.indexOf("?"));
params = getParams(str);
console.log(params);
console.log('radius => ', params['radius']);
这个答案来自于这篇文章:如何从get参数中获得值?
发布于 2017-04-07 15:14:41
它应该像简单一样容易
var str='/results?radius=4000&newFilter=true';
var n = 1234;
str = str.replace(/(radius=)(\d+)/, "$1" + n);https://stackoverflow.com/questions/43281509
复制相似问题