Javascript 使用正则表达式删除奇数空格以获得字符数组中偶数个空格

Javascript 使用正则表达式删除奇数空格以获得字符数组中偶数个空格,javascript,regex,Javascript,Regex,如何在javascript中实现它。其逻辑实际上是检查字符数组中某个模式后出现的空格数,如果空格数为奇数,则删除一个空格使其为偶数,如果空格数为偶数,则保持原样。 例如 *abc\n*abc 在上面的示例中,我在\n和*之间有3个空格,输出应该是\n和*之间的2个空格* *abc\n*abc 我所说的模式是*和\n之间的空格 您可以这样做: console.log("* abc \n * abc".replace(/(( )+) ?/g, "$1")); “(()+)”捕获偶数空格,然

如何在javascript中实现它。其逻辑实际上是检查字符数组中某个模式后出现的空格数,如果空格数为奇数,则删除一个空格使其为偶数,如果空格数为偶数,则保持原样。 例如

*abc\n*abc

在上面的示例中,我在\n和*之间有3个空格,输出应该是\n和*之间的2个空格*

*abc\n*abc


我所说的模式是*和\n之间的空格

您可以这样做:

console.log("* abc  \n   * abc".replace(/((  )+) ?/g, "$1"));

“(()+)”
捕获偶数空格,然后捕获可选空格(如果存在)。最后,
“$1”
将所有找到的空格(偶数或奇数)替换为捕获的偶数空格。

@guilhermelmi,感谢您指出这一点,添加了示例漂亮的答案!唯一的问题是,如果在模式之后只有一个空格(在这种情况下,我认为如果我得到了正确的要求,应该保留零空格)。在这种情况下,只需将
+
替换为
*
就可以了。谢谢你,*使它非常适合我的用例:)