我怎样才能取代Javascript中的正则expression式子string匹配?

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

1replace整个stringstr 。 我希望它replace匹配的子string,而不是整个string。 这是可能的Javascript?

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

或者如果您确定string中不会有其他数字:

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

使用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"); } 

编辑:关于评论的适应

我会得到你想要replace的前后部分,并把它们放在任何一边。

喜欢:

 var str = 'asd-0.testing'; var regex = /(asd-)\d(\.\w+)/; var matches = str.match(regex); var result = matches[1] + "1" + matches[2]; // With ES6: var result = `${matches[1]}1${matches[2]}`;