Remove line breaks from start and end of string

Solution 1:

Try this:

str = str.replace(/^\s+|\s+$/g, '');

jsFiddle here.

Solution 2:

String.trim() does in fact remove newlines (and all other whitespace). Maybe it didn't used to? It definitely does at the time of writing. From the linked documentation (emphasis added):

The trim() method removes whitespace from both ends of a string. Whitespace in this context is all the whitespace characters (space, tab, no-break space, etc.) and all the line terminator characters (LF, CR, etc.).


If you want to trim all newlines plus other potential whitespace, you can use the following:

return str.trim();

If you want to only trim newlines, you can use a solution that targets newlines specifically.

Solution 3:

/^\s+|\s+$/g should catch anything. Your current regex may have the problem that if your linebreaks contain \r characters they wouldn't be matched.