在替换中使用匹配
Use match in replace
我需要将每个非字母字符放在空格之间。
我想使用 RegExp 来做到这一点,我知道它足以 select 他们全部 (/(^a-zA-Z )/g
).
有没有办法在替换中使用原始匹配项?
(就像是)
str.replace(/(^a-zA-Z )/g,/ \m /);
如果不是,我将循环遍历所有这些,但我真的很想知道这是可能的。
是的,这是可能的。您可以将正则表达式与组一起使用:
var text = '2apples!?%$';
var nextText = text.replace(/([^a-zA-Z])/g, ' ');
console.log(nextText);
是的。您可以在搜索时为 String.prototype.replace()
函数提供一个 RegExp。你也可以给它一个函数来处理替换。
函数会给你匹配作为第一个参数,你return你想把它改成什么。
const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, match => ` ${match} `);
console.log(replaced);
如果您只是需要做一些简单的事情,您也可以只使用 $n
值(</code>、<code>
等)根据所选组(括号组)。
const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, ' ');
console.log(replaced);
你可以检查这个link
的替换功能
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
我需要将每个非字母字符放在空格之间。
我想使用 RegExp 来做到这一点,我知道它足以 select 他们全部 (/(^a-zA-Z )/g
).
有没有办法在替换中使用原始匹配项?
(就像是)
str.replace(/(^a-zA-Z )/g,/ \m /);
如果不是,我将循环遍历所有这些,但我真的很想知道这是可能的。
是的,这是可能的。您可以将正则表达式与组一起使用:
var text = '2apples!?%$';
var nextText = text.replace(/([^a-zA-Z])/g, ' ');
console.log(nextText);
是的。您可以在搜索时为 String.prototype.replace()
函数提供一个 RegExp。你也可以给它一个函数来处理替换。
函数会给你匹配作为第一个参数,你return你想把它改成什么。
const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, match => ` ${match} `);
console.log(replaced);
如果您只是需要做一些简单的事情,您也可以只使用 $n
值(</code>、<code>
等)根据所选组(括号组)。
const original = 'a1b2c';
const replaced = original.replace(/([^a-z])/gi, ' ');
console.log(replaced);
你可以检查这个link
的替换功能https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace