替换使用匹配

时间:2017-07-13 17:10:02

标签: javascript regex string str-replace

我需要在空格之间放置每个非字母字符。 我想用RegExp做到这一点,我理解它可以选择全部(/(^a-zA-Z )/g) 有没有办法在替换中使用原始匹配? (就像是) str.replace(/(^a-zA-Z )/g,/ \m /); 如果不是,我会绕过所有这些,但我真的想知道它是可能的。

3 个答案:

答案 0 :(得分:1)

是的,有可能。您可以在组中使用正则表达式:

var text = '2apples!?%$';
var nextText = text.replace(/([^a-zA-Z])/g, ' $1 ');

console.log(nextText); 

答案 1 :(得分:1)

是。您可以为String.prototype.replace()函数提供RegExp作为其搜索。你也可以给它一个处理替换的功能。

该函数会将匹配作为第一个参数,并返回要将其更改为的内容。



const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, match => ` ${match} `);
console.log(replaced);




如果您只是需要做一些简单的事情,您也可以使用$n值($1$2等)根据所选的组进行替换(括号中)。



const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, ' $1 ');
console.log(replaced);




答案 2 :(得分:0)