Javascript 在替换中使用匹配
我需要把每个非字母字符放在空格之间。 我想使用RegExp来实现这一点,我知道选择所有(Javascript 在替换中使用匹配,javascript,regex,string,str-replace,Javascript,Regex,String,Str Replace,我需要把每个非字母字符放在空格之间。 我想使用RegExp来实现这一点,我知道选择所有(/(^a-zA-Z)/g)是非常困难的。 有没有办法在替换中使用原始匹配? (差不多) str.replace(/(^a-zA-Z)/g,/\m/) 如果不是的话,我会把它们全部循环一遍,但我真的想知道这是可能的。是的,这是可能的。您可以将正则表达式与组一起使用: var text='2apples!?%$'; var nextText=text.replace(/([^a-zA-Z])/g,“$1”);
/(^a-zA-Z)/g
)是非常困难的。有没有办法在替换中使用原始匹配? (差不多)
str.replace(/(^a-zA-Z)/g,/\m/)代码>
如果不是的话,我会把它们全部循环一遍,但我真的想知道这是可能的。是的,这是可能的。您可以将正则表达式与组一起使用:
var text='2apples!?%$';
var nextText=text.replace(/([^a-zA-Z])/g,“$1”);
console.log(nextText)代码>是。您可以为String.prototype.replace()
函数指定一个RegExp作为搜索。您还可以为其提供处理替换的功能
该函数将把匹配作为第一个参数提供给您,您将返回要将其更改为的内容
const original='a1b2c';
const replaced=original.replace(/([^a-z])/gi,match=>`${match}`);
控制台日志(已替换)代码>您可以检查此链接上的替换功能
是的,我从原型中知道它,但这无助于我重用字符串……但如果您遵循链接,它会有所帮助;)组从1开始计数?(意思是只有一个组时总是$1?)是的,它们是1索引的,而不是数组之类的通常的0索引。因此,$1
始终是第一位的。这实际上是正则表达式的一个几乎普遍的约定,不管语言如何。