如何替换Javascript中的正则表达式子字符串匹配?

如何替换Javascript中的正则表达式子字符串匹配?,javascript,regex,replace,substring,Javascript,Regex,Replace,Substring,将整个字符串str替换为1。我希望它替换匹配的子字符串,而不是整个字符串。这在Javascript中是可能的吗?我会在你想要替换的东西之前和之后得到这个部分,然后把它们放在两边 比如: 使用str.replace(regex,$1): 编辑:关于评论的改编 var str = 'asd-0.testing'; var regex = /(asd-)\d(\.\w+)/; if (str.match(regex)) { str = str.replace(regex, "$1" +

将整个字符串
str
替换为
1
。我希望它替换匹配的子字符串,而不是整个字符串。这在Javascript中是可能的吗?

我会在你想要替换的东西之前和之后得到这个部分,然后把它们放在两边

比如:

使用str.replace(regex,$1)

编辑:关于评论的改编

var str   = 'asd-0.testing';
var regex = /(asd-)\d(\.\w+)/;

if (str.match(regex)) {
    str = str.replace(regex, "$1" + "1" + "$2");
}
或者,如果您确定字符串中没有任何其他数字:

var str   = 'asd-0.testing';
var regex = /(asd-)\d(\.\w+)/;
str = str.replace(regex, "$11$2");
console.log(str);

我认为实现目标的最简单方法是:

var str   = 'asd-0.testing';
var regex = /\d/;
str = str.replace(regex, "1");
console.log(str);

我想用“1”替换子字符串,而不是用子字符串+1替换整个字符串。我个人喜欢使用匹配集进行分形。我同意,在我看来,使用匹配集更可读。或者使用函数:“asd-0.testing”。替换(/(asd-)\d(\.\w+/,函数(mystring,arg1,arg2){返回arg1+‘mynumber’+arg2})如果你不知道正则表达式的结构,有什么答案吗?在这里,您基本上创建了一个带有两个匹配项的新正则表达式。很高兴知道,您需要在所需的部分周围使用大括号(),例如$1、$2等。仅供参考,所有的解决方案都非常复杂。你只是想替换火柴,对吗?简单的方法是:不修改正则表达式,如下所示:
str.replace(regex,$`1$”
see
var str   = 'asd-0.testing';
var regex = /(asd-)\d(\.\w+)/;
str = str.replace(regex, "$11$2");
console.log(str);
var str   = 'asd-0.testing';
var regex = /\d/;
str = str.replace(regex, "1");
console.log(str);
var str   = 'asd-0.testing';
var regex = /(asd-)(\d)(\.\w+)/;
var anyNumber = 1;
var res = str.replace(regex, `$1${anyNumber}$3`);