我仍然在学习一些像样的正则表达式,但我认为这样可行。
这有效:
str.replace(/ /g,"").replace(/(\r\n|\n|\r)/gm,"");
但是这个的缩短版本却没有。我哪里出错了?
str.replace((/ /g)|(/(\r\n|\n|\r)/gm),"");
答案 0 :(得分:4)
regexpr分隔符为/
,因此表达式中包含“或”|
。如果您想加入他们,请尝试
str.replace((/ |\r\n|\n|\r/gm),"");
顺便说一句,标签字符在正则表达式中为\t
,因此如果要删除所有标签和新行,可以使用str.replace(/[\t\n\r]/gm,'');
这样说,如果使用“标签”,则表示任何标识包括“4个空格”,然后使用str.replace(/[ {4}\t\n\r]/gm,'');
答案 1 :(得分:1)
你应该在下面做(将两个正则表达式合并为一个):
str = str.replace(/ |\r\n|\n|\r/gm, '');
对于2个空格,你也可以写:
str = str.replace(/ {2}|\r\n|\n|\r/gm, '');
答案 2 :(得分:1)
您可能希望将它们分组,而不是所有OR运算符:
str = "Hello\n" +
"there stranger!";
str.replace(/[\r\n\t]/g, "")
// "Hellotherestranger!"
[
和]
组表示“此组中的任何字符”,它比所有OR表达式更清晰。
答案 3 :(得分:0)
您可以尝试:
str.replace(/(\r\n|\n|\r|( ))/gm,"");