将所有点替换为单个

Replace all dots to single

如何替换

. . . Hello . . . . . . world . . .

. Hello . world .

用简单的点

替换"point space point"

这样试过:

/(\.\s\.)+/i

您可以使用

/\.(?: \.)+/

匹配一个句点,然后尽可能多次重复一组 space 后跟一个句点,并将其全部替换为一个句点。

const str = '. . . Hello . . . . . . world . . .';
console.log(
  str.replace(/\.(?: \.)+/g, '.')
);

我们可以将替换表述为任何单个点,然后依次跟一个 space 和另一个点,整个数量出现一次或多次。也就是说,我们可以找到下面的模式,然后用一个点替换:

\.( \.)+

代码示例:

var input = ". . . Hello . . . . . . world . . .";
console.log(input);
input = input.replace(/\.( \.)+/g, ".");
console.log(input);

编辑:

我们可以通过使用 ?: 关闭捕获来稍微提高模式的效率,即使用以下模式:

\.(?: \.)+