Javascript - 用正则表达式替换所有

Mic*_*lis 1 javascript regex

我想用一些正则表达式替换一些括号之间的空格.如果我使用正则表达式只替换一些空格(只有唯一的对).

字符串可能有其他空格,但我只想要paranthesis之间的空格.

var mystring = ") ) ) ) ) )";
console.log(mystring);
mystring = mystring.replace(/\)\s\)/g, "))");
console.log(mystring);
Run Code Online (Sandbox Code Playgroud)

输出是:

) ) ) ) ) )
)) )) ))
Run Code Online (Sandbox Code Playgroud)

但是我想要这个输出:

) ) ) ) ) )
))))))
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 10

问题是,通过消费) ),你)在查看字符串的下一部分时不再具有领先优势.

如果它们后面跟着另一个),那么使用正向前瞻断言来代替第一个和后面的空格,而不是替换它们.)

mystring = mystring.replace(/\)\s(?=\))/g, ")");
//                  Lookahead ---^^^^^^     ^--- only one ) in replacement
Run Code Online (Sandbox Code Playgroud)

实例:

var mystring = ") ) ) ) ) )";
console.log(mystring);
mystring = mystring.replace(/\)\s(?=\))/g, ")");
console.log(mystring);
Run Code Online (Sandbox Code Playgroud)