我怎样才能取代Javascript中的正则expression式子string匹配?
var str = 'asd-0.testing'; var regex = /asd-(\d)\.\w+/; str.replace(regex, 1);
用1
replace整个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]}`;