How can I remove all extra space between words in a string literal?
\"some value\"
Should become
\"some value\"
<
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.
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,' ');
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 = 'some value';
str.replace(/\s\s+/g, ' ');
var str = " This should become something else too . ";
str = str.replace(/ +(?= )/g,'');
Here's a working fiddle.