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
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()
.