[javascript] Javascript에서 정규식 하위 문자열 일치를 어떻게 바꿀 수 있습니까?

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

str.replace(regex, 1);

전체 문자열 str1. 전체 문자열 대신 일치하는 하위 문자열을 바꾸고 싶습니다. Javascript에서 가능합니까?



답변

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);


답변

사용 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+)/;

var matches = str.match(regex);

var result = matches[1] + "1" + matches[2];

// With ES6:
var result = `${matches[1]}1${matches[2]}`;


답변

목표를 달성하는 가장 간단한 방법은 다음과 같습니다.

var str   = 'asd-0.testing';
var regex = /(asd-)(\d)(\.\w+)/;
var anyNumber = 1;
var res = str.replace(regex, `$1${anyNumber}$3`);


답변