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
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • By
    Camera and Video Control with HTML5

    Client-side APIs on mobile and desktop devices are quickly providing the same APIs.  Of course our mobile devices got access to some of these APIs first, but those APIs are slowly making their way to the desktop.  One of those APIs is the getUserMedia API...

Incredible Demos

  • By
    9 Incredible CodePen Demos

    CodePen is a treasure trove of incredible demos harnessing the power of client side languages.   The client side is always limited by what browsers provide us but the creativity and cleverness of developers always pushes the boundaries of what we think the front end can do.  Thanks to CSS...

  • By
    Create a Simple Slideshow Using MooTools

    One excellent way to add dynamism to any website is to implement a slideshow featuring images or sliding content. Of course there are numerous slideshow plugins available but many of them can be overkill if you want to do simple slideshow without controls or events.

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!