--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes tags: - ES6 - JavaScript - Prototipo - Referencia - String - metodo translation_of: Web/JavaScript/Reference/Global_Objects/String/includes ---
O método includes() determina se um conjunto de caracteres pode ser encontrado dentro de outra string, retornando true
ou false
.
str.includes(searchString[, position])
searchString
position
true
se o conjunto de caracteres for encontrado em algum lugar dentro da string sendo pesquisada. Do contrário, retorna false
.
Este método permite conferir se uma string contém um determinado conjunto de caracteres.
O método includes()
é case sensitive. Por exemplo, a seguinte expressão retorna false
:
'Bandeira do Brasil'.includes('brasil'); // retorna false
includes()
var str = 'Ser, ou não ser, eis a questão.'; console.log(str.includes('Ser')); // true console.log(str.includes('questão')); // true console.log(str.includes('não existe')); // false console.log(str.includes('ser', 1)); // true console.log(str.includes('SER')); // false
Este método foi adicionado à especificação ECMAScript 6 e pode não estar disponível em todas as implementações JavaScript. No entanto, você pode facilmente implementar este método:
if (!String.prototype.includes) { String.prototype.includes = function() {'use strict'; return String.prototype.indexOf.apply(this, arguments) !== -1; }; }
Especificação | Status | Comentário |
---|---|---|
{{SpecName('ES6', '#sec-string.prototype.includes', 'String.prototype.includes')}} | {{Spec2('ES6')}} | Definição inicial. |
No Firefox 18 - 39, o nome deste método era contains()
. Ele foi renomeado para includes()
no {{bug(1102219)}} devido ao seguinte motivo:
Foi reportado que alguns websites que utilizam MooTools 1.2 não funcionavam no Firefox 17. Esta versão do MooTools verifica se String.prototype.contains()
existe e, se não existir, MooTools adiciona sua própria função. Com a implementação desta função no Firefox 17, o comportamento desta validação mudou de uma forma que códigos baseados na implementação da função String.prototype.contains()
do MooTools parassem de funcionar. Como resultado, esta mudança foi desabilitada no Firefox 17 e String.prototype.contains()
foi disponibilizada na versão seguinte, no Firefox 18.
MooTools 1.3 força sua própria versão do String.prototype.contains()
, portanto websites baseados nela não devem parar de funcionar. No entanto, você deve notar que a assinatura do MooTools 1.3 e a assinatura ECMAScript 6 diferem (no segundo argumento). Posteriormente, MooTools 1.5+ mudou sua assinatura para o padrão ES6.