Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在替换中使用匹配_Javascript_Regex_String_Str Replace - Fatal编程技术网

Javascript 在替换中使用匹配

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”);

我需要把每个非字母字符放在空格之间。 我想使用RegExp来实现这一点,我知道选择所有(
/(^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
始终是第一位的。这实际上是正则表达式的一个几乎普遍的约定,不管语言如何。