Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript - How to remove all extra spacing between words

People also ask

How do I get rid of extra space between words in JavaScript?

trim() method: const sentence = ' My string with a lot of Whitespace. '. replace(/\s+/g, ' ').

How do I remove spaces between words in jquery?

The $. trim() function removes all newlines, spaces (including non-breaking spaces), and tabs from the beginning and end of the supplied string. If these whitespace characters occur in the middle of the string, they are preserved.


var string = "    This    should  become   something          else   too . ";
string = string.replace(/\s+/g, " ");

This code replaces a consecutive set of whitespace characters (\s+) by a single white space. Note that a white-space character also includes tab and newlines. Replace \s by a space if you only want to replace spaces.

If you also want to remove the whitespace at the beginning and end, include:

string = string.replace(/^\s+|\s+$/g, "");

This line removes all white-space characters at the beginning (^) and end ($). The g at the end of the RegExp means: global, ie match and replace all occurences.


var str = "    This    should  become   something          else   too . ";
str = str.replace(/ +(?= )/g,'');

Here's a working fiddle.


In case we want to avoid the replace function with regex,

We can achieve same result by

str.split(' ').filter(s => s).join(' ')
// var str = "    This    should  become   something          else   too . ";
// result is "This should become something else too ."

First, split the original string with space, then we will have empty string and words in an array. Second, filter to remain only words, then join all words with a whitespace.


var str = "    This    should  become   something          else   too . "
$.trim(str).replace(/\s(?=\s)/g,'')

This uses lookahead to replace multiple spaces with a single space.


jsFiddle Example

"    This    should  become   something          else   too . ".replace(/[\s\t]+/g,' ');

Another (perhaps easier to understand) regexp replacement that will do the trick:

var input = /* whatever */;
input = input.replace(/ +/g, ' ');

The regexp matches one or more spaces, so the .replace() call replaces every single or repeated space with a single space.