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