How to Split a String by a Regex in JavaScript


Borislav Hadzhiev

Wed Nov 17 20212 min read

Split a String by a Regex in JavaScript #

To split a string by a regular expression, pass a regex as a parameter to the split() method, e.g. str.split(/[,.\s]/). The split method takes a string or regular expression and splits the string based on the provided separator, into an array of substrings.

const str = 'one,two.three four'; const result = str.split(/[,.\s]/); // 👇️ ['one', 'two', 'three', 'four'] console.log(result);

The only parameter we passed to the String.split is the separator.

The method splits the string into an array of substrings on each match of the regular expression.

The forward slashes / / mark the beginning and end of the regular expression.

The regular expression in the example uses a character class [] to match any of the characters between the square brackets - a comma, dot, and whitespace.

If you need a regex cheatsheet, check out this one from MDN. It's by far the best one out there.

Character classes are most commonly used when you need to split the string using multiple separators.

Here's another example that splits a string on each digit.

const str = 'one1two2three'; const result = str.split(/\d/); console.log(result); // 👉️ ['one', 'two', 'three']

The \d special character matches any digit 0-9. It's the same as using a range [0-9].

Note that you don't have to pass the g (global) flag when using the splitmethod with a regular expression, as the method does not stop on the first occurrence.

However, you could use other flags, for example, case insensitive match.

const str = 'oneAtwoBthree'; const result = str.split(/[ab]/i); console.log(result); // 👉️ ['one', 'two', 'three']

The character class [] matches either a or b. Because we've set the i flag, we match uppercase and lowercase occurrences of the a and b characters in the string.

Use the search field on my Home Page to filter through my more than 1,000 articles.