--- title: String.prototype.indexOf() slug: Web/JavaScript/Reference/Global_Objects/String/indexOf translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf ---
Il metodo indexOf()
restituisce l'indice all'interno dell'oggetto {{jsxref("String")}} chiamante della prima occorrenza del valore specificato, avviando la ricerca su fromIndex
. Restituisce -1 se il valore non viene trovato.
str.indexOf(searchValue[, fromIndex])
"undefined"
e questo valore verrà cercato nella stringa corrente.0
. Per valori fromIndex
values inferiori a 0
o maggiori di str.length
, la ricerca inizia rispettivamente con 0
e str.length
.L'indice della prima occorrenza di searchValue o -1 se non trovato.
Una stringa vuota searchValue corrisponderà a qualsiasi indice tra 0
e str.length
.
I caratteri in una stringa sono indicizzati da sinistra a destra. L'indice del primo carattere è 0 e l'indice dell'ultimo carattere di una stringa chiamata stringName
è stringName.length - 1
.
'Blue Whale'.indexOf('Blue'); // ritorna 0 'Blue Whale'.indexOf('Blute'); // ritorna -1 'Blue Whale'.indexOf('Whale', 0); // ritorna 5 'Blue Whale'.indexOf('Whale', 5); // ritorna 5 'Blue Whale'.indexOf('Whale', 7); // ritorna -1 'Blue Whale'.indexOf(''); // ritorna 0 'Blue Whale'.indexOf('', 9); // ritorna 9 'Blue Whale'.indexOf('', 10); // ritorna 10 'Blue Whale'.indexOf('', 11); // ritorna 10
Il metodo indexOf()
è case sensitive. Ad esempio, la seguente espressione restituisce -1:
'Blue Whale'.indexOf('blue'); // ritorna -1
Nota che '0' non valuta true
e '-1' non valuta false
. Pertanto, quando si verifica se esiste una stringa specifica all'interno di un'altra stringa, il modo corretto per verificare sarebbe:
'Blue Whale'.indexOf('Blue') !== -1; // true 'Blue Whale'.indexOf('Bloe') !== -1; // false
indexOf()
Nell'esempio seguente viene utilizzato indexOf()
per individuare i valori nella stringa "Brave new world"
.
const str = 'Brave new world'; console.log('L'indice della prima w dall'inizio è ' + str.indexOf('w')); // logga 8 console.log('L'indice di "new" dall'inizio è ' + str.indexOf('new')); // logga 6
indexOf()
e il case-sensitivityL'esempio seguente definisce due variabili stringa. Le variabili contengono la stessa stringa tranne che la seconda stringa contiene lettere maiuscole. Il primo metodo {{domxref("console.log()")}} mostra 19. Ma poiché il metodo indexOf()
è case sensitive, la stringa "cheddar"
non si trova in myCapString
, quindi il secondo metodo console.log()
mostra -1.
const myString = 'brie, pepper jack, cheddar'; const myCapString = 'Brie, Pepper Jack, Cheddar'; console.log('myString.indexOf("cheddar") è ' + myString.indexOf('cheddar')); // logs 19 console.log('myCapString.indexOf("cheddar") è ' + myCapString.indexOf('cheddar')); // logs -1
indexOf()
per contare le occorrenze di una lettera in una stringaL'esempio seguente imposta count
sul numero di occorrenze della lettera e
nella stringa str
:
const str = 'Essere o non essere, questa è la domanda.'; let count = 0; let position = str.indexOf('e'); while (position !== -1) { count++; position = str.indexOf('e', position + 1); } console.log(count); // mostra 4
Specifica | Stato | Commento |
---|---|---|
{{SpecName('ES1')}} | {{Spec2('ES1')}} | Definizione iniziale. |
{{SpecName('ES5.1', '#sec-15.5.4.7', 'String.prototype.indexOf')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.String.indexOf")}}