JavaScript: how to use a regular expression to remove blank lines from a string? [closed]

I need to use JavaScript to remove blank lines in a HTML text box. The blank lines can be at anywhere in the textarea element. A blank line can be just a return or white spaces plus return.

I am expecting a regular expression solution to this. Here are some I tried, but they are not working and cannot figure out why:



Edit 1

It appears that the solution (I modified it a little) suggested by aaronman and m.buettner works:

string.replace(/^\s*\n/gm, "") 

Can someone tell why my first regular expression is not working?

Edit 2

After reading all useful answers, I came up with this:


Is this going to be one that cover all situations?

Edit 3

This is the most concise one covering all spaces (white spaces, tabs) and platforms (Linux, Windows, Mac).


Many thanks to m.buettner!



Your pattern seems alright, you just need to include the multiline modifier m, so that ^ and $ match line beginnings and endings as well:


Without the m, the anchors only match string-beginnings and endings.

Note that you miss out on Mac line endings (only \r). This would help in that case:


Also note that (in both cases) you don't need to match the optional \r in front of the \n explicitly, because that is taken care of by \s*.

As Dex pointed out in a comment, this will fail to clear the last line if it consists only of spaces (and there is no newline after it). A way to fix that would be to make the actual newline optional but include an end-of-line anchor before it. In this case you do have to match the line ending properly though:


I believe this will work

searchText.replace(/(^[ \t]*\n)/gm, "")

This should do the trick i think:

var el = document.getElementsByName("nameOfTextBox")[0];
el.value.replace(/(\r\n|\n|\r)/gm, "");

EDIT: Removes three types of line breaks.


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.