删除所有出现的新行和新标签

Bra*_*roy 0 javascript regex replace

我仍在学习一些体面的正则表达式,但我本以为可以。

这有效:

str.replace(/   /g,"").replace(/(\r\n|\n|\r)/gm,"");
Run Code Online (Sandbox Code Playgroud)

但是,这不是一个简短的版本。我哪里做错了?

str.replace((/  /g)|(/(\r\n|\n|\r)/gm),"");
Run Code Online (Sandbox Code Playgroud)

Pab*_*ano 6

regexpr分隔符为/,因此|表达式中没有“或” 。如果您想加入他们,请尝试

str.replace((/  |\r\n|\n|\r/gm),"");
Run Code Online (Sandbox Code Playgroud)

顺便说一句,制表符位于正则\t表达式中,因此,如果要删除str.replace(/[\t\n\r]/gm,'');所有制表符和换行,可以使用表示此,如果使用“制表符”,则表示包括“ 4个空格”的任何标识,然后使用str.replace(/[ {4}\t\n\r]/gm,'');

  • 使用推荐的方式包含 4 个空格是有问题的,因为它会错误地匹配文字数字 4。请改用:`str.replace(/ {4}|[\t\n\r]/gm,'') ;`。 (2认同)

Dan*_*ers 6

您可能只想将它们分组,而不是所有的 OR 运算符:

str = "Hello\n" +
      "there    stranger!";

str.replace(/[\r\n\t]/g, "")
// "Hellotherestranger!"
Run Code Online (Sandbox Code Playgroud)

[]一群手段“从该组中的任何字符”,它的清洁比所有或表达式。