Remove Multiple New Lines with JavaScript

By  on  

I'm blessed in that lots of people want to guest post on this blog.  It's really flattering and I love seeing writers get a bunch of attention after writing.  My task is converting the blog post, in whatever format it's provided in (HTML, Markdown, PDF, Google Doc, etc.), to HTML for my blog, which can sometimes get messy.  I employ a host of regular expressions to fix these formatting issues.  And the number one problem?  Loads of extra new lines (\n).

The Regular Expression

The regular expression is actually quite simple:

content.replace(/[\r\n]+/g, '\n'); // Just one new line

content.replace(/[\r\n]+/g, '\n\n'); // "document" formatting, more elegant

With the dozens of extra lines gone it's much easier to work with the content!

Recent Features

  • By
    9 Mind-Blowing Canvas Demos

    The <canvas> element has been a revelation for the visual experts among our ranks.  Canvas provides the means for incredible and efficient animations with the added bonus of no Flash; these developers can flash their awesome JavaScript skills instead.  Here are nine unbelievable canvas demos that...

  • By
    5 HTML5 APIs You Didn&#8217;t Know Existed

    When you say or read "HTML5", you half expect exotic dancers and unicorns to walk into the room to the tune of "I'm Sexy and I Know It."  Can you blame us though?  We watched the fundamental APIs stagnate for so long that a basic feature...

Incredible Demos

  • By
    Parallax Sound Waves Animating on Scroll

    Scrolling animations are fun. They are fun to create and fun to use. If you are tired of bootstrapping you might find playing with scrolling animations as a nice juicy refreshment in your dry front-end development career. Let's have a look how to create animating...

  • By
    Face Detection with jQuery

    I've always been intrigued by recognition software because I cannot imagine the logic that goes into all of the algorithms. Whether it's voice, face, or other types of detection, people look and sound so different, pictures are shot differently, and from different angles, I...

Discussion

  1. Adam van den Hoven

    David,

    I’m more inclined to use something like:

    content.replace(/[\r\n]\s*/g, '\n'); // Just one new line
    content.replace(/[\r\n]\s*/g, '\n\n'); // "document" formatting, more elegant
    

    Only there always seems to be some extra whitespace between those newlines. If you don’t want to loose the tabs on the next line then this works just as well

    content.replace(/[\r\n]\s*[\r\n]/g, '\n'); // Just one new line
    content.replace(/[\r\n]\s*[\r\n]/g, '\n\n'); // "document" formatting, more elegant
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!