Whitespace, meaning tabs and spaces.
Vanilla JavaScript (Trim Leading and Trailing)
var str = " a b c d e f g ";
var newStr = str.trim();
// "a b c d e f g"
That method is ES 5, so just in case you could polyfill it (IE 8 and down):
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, '');
};
}
jQuery (Trim Leading and Trailing)
If you’re using jQuery anyway:
var str = " a b c d e f g ";
var newStr = $.trim(str);
// "a b c d e f g"
Vanilla JavaScript RegEx (Trim Leading and Trailing)
var str = " a b c d e f g ";
var newStr = str.replace(/(^\s+|\s+$)/g,'');
// "a b c d e f g"
Vanilla JavaScript RegEx (Trim ALL Whitespace)
var str = " a b c d e f g ";
var newStr = str.replace(/\s+/g, '');
// "abcdefg"
Demos
See the Pen Remove Whitespace from Strings by Chris Coyier (@chriscoyier) on CodePen.
Note that none of this works with other types of whitespace, for instance   (thin space) or (non-breaking space).
You can also trim strings from the front or back.
You don’t need that “+” in the last case: “g” modifier takes care of that.
I think the results for first and second case are incorrect. In both cases
newStr === "a b c d e f g"
, not"a b c d e f g"
.Hmm. It seems that the code formatter in CSS-Tricks actually removes extra white space between chars (lol), and I’m guessing that’s the reason the lines 5 and 11 are incorrect.
You can use replace to remove all extra spaces.
”.replace(/[ ]{2,}/g, ‘ ‘);
e.g. ‘a s dsdsd f s d f s d dsfg’.replace(/[ ]{2,}/g, ‘ ‘); // “a s dsdsd f s d f s d dsfg”
How to remove the white space for buttons in the left side.
No reason to use jQuery trim anymore, because vanilla JS have it, and syntax is simplier. They even recommend to use it in jQuery docs.