text = text.replace(/s{2,}/g, ' ');
s
will take all spaces, including new lines, so you may change that to / {2,}/g
. {2,}
takes two or more. Unlike s+
, this will not replace a single space with a single space. (a bit of an optimization, but it usually makes a differance) g
flag is needed in JavaScript, or it will only change the first block of spaces, and not all of them.