The includes() method determines whether one string may be found within another string, returning true or false as appropriate.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
str.includes(searchString[, position])
Parameters
searchString- A string to be searched for within
str. positionOptional- The position within the string at which to begin searching for
searchString. (Defaults to0.)
Return value
true if the search string is found anywhere within the given string; otherwise, false if not.
Description
This method lets you determine whether or not a string includes another string.
Case-sensitivity
The includes() method is case sensitive. For example, the following expression returns false:
'Blue Whale'.includes('blue') // returns false
Polyfill
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;
};
}
Examples
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
Specifications
| Specification |
|---|
| ECMAScript (ECMA-262) The definition of 'String.prototype.includes' in that specification. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
includes | Chrome Full support 41 | Edge Full support 12 | Firefox
Full support
40
| IE No support No | Opera Full support 28 | Safari Full support 9 | WebView Android Full support 41 | Chrome Android Full support 41 | Firefox Android
Full support
40
| Opera Android Full support 28 | Safari iOS Full support 9 | Samsung Internet Android Full support 4.0 | nodejs Full support 4.0.0 |
Legend
- Full support
- Full support
- No support
- No support
- Uses a non-standard name.
- Uses a non-standard name.
