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

2022-08-30 04:14:38
var str   = 'asd-0.testing';
var regex = /asd-(\d)\.\w+/;

str.replace(regex, 1);

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


答案 1
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);

答案 2

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

编辑:关于评论的改编