String.prototype.includes()
includes()
verifica se una stringa ne contiene un'altra desiderata, restituendo true
o false
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 |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String.prototype.includes' in that specification. |
Standard | Definizioni inizili. |
ECMAScript (ECMA-262) The definition of 'String.prototype.includes' in that specification. |
Living Standard |
Compatibilità Browser
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Edge | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 41 | 40 (40) | No support | 14393+ | No support | 9 |
Feature | 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
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.