https://regex101.com/
Ten online nastroj krasne obarvuje. Ale neprevadi \n \r jako znak, ale jako string '\n \r'. Takze bys to musel zapsat jako string.
str = str.replace(/[ \t\r\n]+/gm," ");
str = str.replace(/([ ]|\\[trn])+/gm," ");
Příspěvky odeslané z IP adresy 2001:718:2601:258:d427:ea...–
peter
peter
https://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html
str = str.replace(/\s+/gm," "); // \s = mezera + \r\n + tabelatory (\t + jeden dalsi)
str = str.replace(/[ \t\r\n]+/gm," ");
V podstate ten prvni by mel byt lepsi, protoze do toho zapocitava i mezery. Ve tvem pripade, kdyz bys mel kombinaci '\n ' tak by tvuj vyraz z toho udelal 2 mezery misto 1.
/g je global
/m je multiline
Ale to asi vis, proc tam mas.