MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Traducción en curso

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)
The definition of 'String.prototype.includes' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'String.prototype.includes' in that specification.
Living Standard  

Compatibilidad de navegadores

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

String.prototype.contains

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

Se ha reportado que algunos sitios web usan MooTools 1.2 broke 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 Firefoz 17, With the introduction of this function in 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 deshabilitado 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 notar 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 removido. Use únicamente String.prototype.includes().

Ver también

Etiquetas y colaboradores del documento

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