The includes() method performs a case-sensitive search to determine whether one string may be found within another string, returning true or false as appropriate.


str.includes(searchString[, position])


A string to be searched for within str.
position Optional
The position within the string at which to begin searching for searchString. (Defaults to 0.)

Return value

true if the search string is found anywhere within the given string; otherwise, false if not.


This method lets you determine whether or not a string includes another string.


The includes() method is case sensitive. For example, the following expression returns false:

'Blue Whale'.includes('blue')  // returns false


This method has been added to the ECMAScript 2015 specification and may not be available in all JavaScript implementations yet.

However, you can easily polyfill this method:

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';

    if (search instanceof RegExp) {
      throw TypeError('first argument must not be a RegExp');
    if (start === undefined) { start = 0; }
    return this.indexOf(search, start) !== -1;


Using includes()

const str = 'To be, or not to be, that is the question.'

console.log(str.includes('To be'))        // true
console.log(str.includes('question'))     // true
console.log(str.includes('nonexistent'))  // false
console.log(str.includes('To be', 1))     // false
console.log(str.includes('TO BE'))        // false
console.log(str.includes(''))             // true


ECMAScript (ECMA-262)
The definition of 'String.prototype.includes' in that specification.

Browser compatibility

BCD tables only load in the browser

See also