Skip to content

How to check if a string contains a substring in JavaScript

New Course Coming Soon:

Get Really Good at Git

JavaScript offers many ways to check if a string contains a substring. Learn the canonical way, and also find out all the options you have, using plain JavaScript

Checking if a string contains a substring is one of the most common tasks in any programming language.

JavaScript offers different ways to perform this operation.

The most simple one, and also the canonical one going forward, is using the includes() method on a string:

'a nice string'.includes('nice') //true

This method was introduced in ES6/ES2015.

It’s supported in all modern browsers except Internet Explorer:

Browser Support for includes

To use it on all browsers, use Polyfill.io or another dedicated polyfill.

includes() also accepts an optional second parameter, an integer which indicates the position where to start searching for:

'a nice string'.includes('nice') //true
'a nice string'.includes('nice', 3) //false
'a nice string'.includes('nice', 2) //true

Pre-ES6 alternative to includes(): indexOf()

Pre-ES6, the common way to check if a string contains a substring was to use indexOf, which is a string method that return -1 if the string does not contain the substring. If the substring is found, it returns the index of the character that starts the string.

Like includes(), the second parameters sets the starting point:

'a nice string'.indexOf('nice') !== -1 //true
'a nice string'.indexOf('nice', 3) !== -1 //false
'a nice string'.indexOf('nice', 2) !== -1 //true
Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!
→ Get my JavaScript Beginner's Handbook
→ Read my JavaScript Tutorials on The Valley of Code
→ Read my TypeScript Tutorial on The Valley of Code

Here is how can I help you: