--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes translation_of: Web/JavaScript/Reference/Global_Objects/String/includes ---
{{JSRef}}
Il metodo includes() verifica se una stringa ne contiene un'altra desiderata, restituendo truefalse in base dell'esito della ricerca.
 

Sintassi

str.includes(searchString[, position])

Parametri

searchString
Una stringa da cercare all'interno di una stringa.
position
Opzionale. La posizione in questa stringa. La posizione in questa stringa in cui iniziare la ricerca di searchString; il valore predefinito è 0.

Valore di ritorno

true se la stringa contiene la stringa di ricerca; altrimenti, false.

Descrizione

Questo metodo permette di determinare se la stringa includa o no un'altra stringa.

Sensitività alle maiuscole

Il metodo includes() è sensibile alle maiuscole. Per esempio, la seguente espressione restituisce false:

'Blue Whale'.includes('blue'); // returns false

Esempi

Utilizzando 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

Questo metodo è stato aggiunto alla specifica ECMAScript 2015 e potrebbe essere non disponibile ancora in tutte le implementazioni di JavaScript.

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;
    }
  };
}

/*
https://github.com/FabioVergani/js-Polyfill_StringIncludes/blob/master/StringIncludes.js

(function(s){'use strict';
 var o=s.prototype,p='includes';
 o[p]||(o[p]=function(a,b){//search,start
  var e=this,i=isNaN(b)?0:b,t=a,l=t.length;
  return (l<1||((i+l)>e.length))?false:-1!==e.indexOf(t,i);
 });
})(String);

*/

 

 

 

 

Specificazioni

Specification Status Comment
{{SpecName('ES6', '#sec-string.prototype.includes', 'String.prototype.includes')}} {{Spec2('ES6')}} Definizioni inizili.
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}} {{Spec2('ESDraft')}}  

Compatibilità Browser 

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Basic support {{CompatChrome("41")}} {{CompatGeckoDesktop("40")}} {{CompatNo}} 14393+ {{CompatNo}} {{CompatSafari("9")}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{CompatNo}} {{CompatGeckoMobile("40")}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

String.prototype.contains

In Firefox 18 - 39, il nome di questo metodo era contains(). E' stato rinominato inincludes() in {{bug(1102219)}} a causa del seguente motivo:

E' stato riportato che alcuni websites che utilizzano MooTools 1.2 non funzionavano su Firefox 17. Tale versione di MooTools controlla se String.prototype.contains() esiste e, se non esiste,  MooTools aggiunge una propria funzione. Con l'introduzione di questa funzione in Firefox 17, il comportamento di tale controllo è cambiato in un modo che il codice basato su String.prototype.contains()  non funzioni. Come risultato, l'implementazione  è stata disabilitata in Firefox 17 e String.prototype.contains() era disponibile nella versione successiva, in Firefox 18, quando outreach to MooTools stava conducendo al rilascio di MooTools version 1.2.6.

MooTools 1.3 forza la propria versione di  String.prototype.contains(), così i siti web che si affidano ad essa non vanno in break. Comunque si noti che la signature di  MooTools 1.3 e quella di ECMAScript 2015 per questo metodo differiscono (sul secondo argomento). Più avanti , MooTools 1.5+ ha cambiato la  signature per incontrare lo standard ES2015.

In Firefox 48, String.prototype.contains() è stato rimosso. Usare String.prototype.includes() solamente.

Vedere anche