Javascript 删除多余的空行

Javascript 删除多余的空行,javascript,regex,Javascript,Regex,这里尝试删除字符串中多余的空行 我试图理解为什么第二种方法不适用于包含空格的行 您的\s需要更改为\\s。只需放置\s与s相同 在字符串中(用引号括起来),反斜杠有特殊的含义。例如,\n是换行符。还有一些您可能听说过,也可能没有听说过,例如\b,\t,\v。只需要定义几个特殊的语言,并认为不存在的 是一个实际的反斜杠和一个 s>代码,这将是一个糟糕的语言设计选择,因为它将是不一致的,是错误的来源,而不是未来的证明。这就是为什么,当您想在字符串中使用反斜杠时,可以将反斜杠转义为\\ 在第一个示例

这里尝试删除字符串中多余的空行

我试图理解为什么第二种方法不适用于包含空格的行


您的
\s
需要更改为
\\s
。只需放置
\s
s
相同

在字符串中(用引号括起来),反斜杠有特殊的含义。例如,
\n
是换行符。还有一些您可能听说过,也可能没有听说过,例如
\b
\t
\v
。只需要定义几个特殊的语言,并认为不存在的<代码> <代码>是一个实际的反斜杠和一个<代码> s>代码,这将是一个糟糕的语言设计选择,因为它将是不一致的,是错误的来源,而不是未来的证明。这就是为什么,当您想在字符串中使用反斜杠时,可以将反斜杠转义为
\\


在第一个示例中,使用
/
字符分隔正则表达式。这不被认为是受上述规则约束的字符串。

@TimBiegeleisen实际上,这不是打字错误。这是我方缺乏理解。请进一步解释为什么我们需要在
\\s
+1中使用两个反斜杠。@sneep谢谢。向上投票,将在2分钟内被接受。但是为什么我们需要在这里使用两个反斜杠呢?并不是所有的
\s
都需要两倍的反斜杠。哪一个可以,为什么?可能的答案为什么我们需要两个反斜杠:
var string = `
    foo



    bar (there are whitespaced lines between bar and baz. I replaced them with dots)
    ....................
    .......................
    ...........           
    baz
`;

// It works
string = string.replace(/^(\s*\n){2,}/gm, '\n');

// Why it doesn't work?
var EOL = string.match(/\r\n/gm) ? '\r\n' : '\n';
var regExp = new RegExp('^(\s*' + EOL + '){2,}', 'gm');
string = string.replace(regExp, EOL);

alert(string);