--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes translation_of: Web/JavaScript/Reference/Global_Objects/String/includes ---
includes()
verifica se una stringa ne contiene un'altra desiderata, restituendo true
o false
in base dell'esito della ricerca.str.includes(searchString[, position])
searchString
position
true
se la stringa contiene la stringa di ricerca; altrimenti, false
.
Questo metodo permette di determinare se la stringa includa o no un'altra stringa.
Il metodo includes()
è sensibile alle maiuscole. Per esempio, la seguente espressione restituisce false:
'Blue Whale'.includes('blue'); // returns false
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
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); */
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')}} |
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}} |
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.