El método includes() determina si una cadena de texto puede ser encontrada dentro de otra cadena de texto, retornando true o false según corresponda.

Sintaxis

str.includes(searchString[, position])

Parametros

searchString
Una cadena a buscar en el texto
position
Opcional. La posición dentro de la cadena en la cual empieza la búsqueda del searchString. Por defecto este valor es 0.

Valor retornado

true si la cadena de texto contiene la cadena buscada; en caso contrario, false.

Descripción

Este método permite determinar si una cadena de texto se encuentra incluida dentro de la otra.

Sensibilidad a Mayúsculas/Minúsculas

El método includes() es "case sensitive" (tiene en cuenta mayúsculas y minúsculas). Por ejemplo, la siguiente expresión devolverá false:

'Ballena azul'.includes('ballena'); // devuelve false

Ejemplos

Usando includes()

var 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

Polyfill

Este método ha sido agregado a la especificación ECMAScript 2015 y a lo mejor no se encuentre disponible en toda las implementaciones de javascript aún. Sin embargo, puedes aplicar facilmente polyfill a este metodo:

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }
    
    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}

Especificaciones

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'String.prototype.includes' en esta especificación.
Standard Definición inicial.
ECMAScript Latest Draft (ECMA-262)
La definición de 'String.prototype.includes' en esta especificación.
Draft  

Compatibilidad de navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Característica Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Basic support 41 40 (40) Sin soporte Yes Sin soporte 9
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Sin soporte Sin soporte 40.0 (40) Sin soporte Sin soporte Sin soporte

String.prototype.contains

En Firefox 18 - 39, el nombre de este método era contains(). Y ha sido renombrado a includes(), en el error 1102219 debido a la siguiente razón:

Se ha reportado que algunos sitios web que usan MooTools 1.2 se rompen en Firefox 17. Esta versión de MooTools comprueba que  String.prototype.contains() exista, y si no existe,  MooTools añade su propia función. Con la introducción de esta función en Firefox 17, el comportamiento de esta comprobación cambió la forma en que el código se hace en MooTools' String.prototype.contains(). Como resultado, la implementación fue deshabilitada en Firefox 17 y String.prototype.contains() estuvo disponible un año más, en Firefox 18, cuando  el alcance de MooTools estaba conduciendo al lanzamiento de MooTools version 1.2.6.

MooTools 1.3 fuerza su propia versión de String.prototype.contains(), así que los sitios que confían en él, no deben romperse. Sin embargo, debes saber que MooTools 1.3 signature y ECMAScript 2015 las firmas de este método son diferentes (en el segundo argumento). Luego, MooTools 1.5+ cambió la firma  que coincide con el ES2015 estándar.

En Firefox 48, String.prototype.contains() ha sido eliminado. Use únicamente String.prototype.includes().

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: Fjaguero, JuanMacias, mikekrn, jairoFg12
Última actualización por: Fjaguero,