Split a String into a List of Lines in JavaScript or Node.js

JavaScript provides a handful of foundational string methods in the stdlib. You can use the given methods to compose your own utility functions. For example, you can split a multiline string into an array of lines. Each line in that array is a string as well. From here, you can format, transform or change the individual lines to your needs.

This tutorial shows you how to split a string on line breaks into a list of strings representing the individual lines.

Node.js Series Overview

Splitting a String on the Newline Character

You can split a long string into its individual lines when seeing a line break. A line break uses the “newline” character. The character to represent a new line in JavaScript is the same as in other languages: \n.

Here’s a utility function splitting a text at the newline character:

/**
 * Returns an array of lines for the given `text`.
 *
 * @param {String} text
 *
 * @returns {String[]}
 */
function lines(text) {  
  return text.split('\n')
}

You may then use the lines utility function like this:

const text = `  
Hey pal,

Supercharge is awesome!  
`

const lines = lines(text)  
// ['', 'Hey pal,', '', 'Supercharge is awesome!']

The template literal in JavaScript is a way to create multiline string values. When wrapping the text to a new line it contains the related line breaks.

Use the @supercharge/strings Package

I’m the maintainer of the @supercharge/strings package providing convenient string utilities. It provides a useful Str#lines() method returning a list of strings representing the individual lines of the given string value:

const Str = require('@supercharge/strings')

const text = `  
Hey pal,

Supercharge is awesome!  
`

Str(text).lines()  
// ['', 'Hey pal,', '', 'Supercharge is awesome!']

Str('').lines()  
// ['']

That’s it!


Mentioned Resources

Explore the Library

Find interesting tutorials and solutions for your problems.