代码之家  ›  专栏  ›  技术社区  ›  Илья Зелень

将所有点替换为单个点

  •  1
  • Илья Зелень  · 技术社区  · 7 年前

    如何更换

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

    . Hello . world .
    

    将“点空间点”替换为“简单点”

    像这样试过:

    /(\.\s\.)+/i
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Tim Biegeleisen    7 年前

    我们可以将替换词表述为任何一个点,然后是一个空格和另一个点,整个数量出现一次或多次。也就是说,我们可以在以下图案上找到,然后仅用一个点替换:

    \.( \.)+
    

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

    编辑:

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

    \.(?: \.)+
    
        2
  •  2
  •   CertainPerformance    7 年前

    你可以用

    /\.(?: \.)+/
    

    匹配一个句点,然后尽可能多地重复一组空格,后跟一个句点,并用一个句点替换所有空格。

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