首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript正则表达式匹配一个接一个字符串

Javascript正则表达式匹配一个接一个字符串
EN

Stack Overflow用户
提问于 2017-04-07 15:09:46
回答 6查看 1.6K关注 0票数 2

我有这根绳子

代码语言:javascript
复制
/results?radius=4000&newFilter=true

我需要将radius=4000替换为radius=n,其中n是变量。

如何使用正则表达式的String.replace()方法来匹配该部分?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-04-07 15:13:25

您可以使用/radius=\d+/来匹配"radius=“,后面跟着任意数量的数字。使用此方法,我们可以使用replace()方法将其替换为所需的值:

代码语言:javascript
复制
var str = "/results?radius=4000&newFilter=true";
var replacement = 123;

var newStr = str.replace(/radius=\d+/, "radius=" + replacement);

console.log(newStr);

票数 4
EN

Stack Overflow用户

发布于 2017-04-07 15:28:51

如果您想获得所有参数,可以尝试如下:

代码语言:javascript
复制
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参数中获得值?

票数 2
EN

Stack Overflow用户

发布于 2017-04-07 15:14:41

它应该像简单一样容易

代码语言:javascript
复制
var str='/results?radius=4000&newFilter=true';
var n = 1234;

str = str.replace(/(radius=)(\d+)/, "$1" + n);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43281509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档