删除所有出现的新行和制表符

Remove all occurences of new lines and tabs

本文关键字:新行 制表符 删除      更新时间:2023-09-26

我还在学习一些像样的正则表达式的过程中,但我本以为这是可行的。

如此:

str.replace(/   /g,"").replace(/('r'n|'n|'r)/gm,"");

但是这个的简短版本没有。我哪里做错了?

str.replace((/  /g)|(/('r'n|'n|'r)/gm),"");

regexpr分隔符是/,因此表达式中有"或" |。如果您想加入它们,请使用

str.replace((/  |'r'n|'n|'r/gm),"");

顺便说一下,制表符在regexp中是't,所以如果你想删除所有制表符和新行,你可以使用str.replace(/['t'n'r]/gm,'');说,如果使用"制表符"你的意思是包括"4个空白"的任何标识,那么使用str.replace(/ {4}|['t'n'r]/gm,'');

不要使用所有的OR操作符,您可能希望像这样对它们进行分组:

str = "Hello'n" +
      "there    stranger!";
str.replace(/['r'n't]/g, "")
// "Hellotherestranger!"

[]组表示"来自该组中的任何字符",它比所有的OR表达式更清晰。

您应该像下面这样做(将两个正则表达式合并为一个):

str = str.replace(/  |'r'n|'n|'r/gm, '');

对于2个空格,你也可以写:

str = str.replace(/ {2}|'r'n|'n|'r/gm, '');

你可以试试:

str.replace(/('r'n|'n|'r|(  ))/gm,"");