--- title: String.prototype.indexOf() slug: Web/JavaScript/Reference/Global_Objects/String/indexOf translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf ---
{{JSRef}}

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.

{{EmbedInteractiveExample("pages/js/string-indexof.html")}}
Note: Per il metodo dell'Array, vedere {{jsxref("Array.prototype.indexOf()")}}.

Sintassi

str.indexOf(searchValue[, fromIndex])

Parametri

searchValue
Una stringa che rappresenta il valore da cercare. Se non viene fornita esplicitamente alcuna stringa, searchValue sarà forzato a "undefined" e questo valore verrà cercato nella stringa corrente.
fromIndex {{optional_inline}}
Un numero intero che rappresenta l'indice al quale avviare la ricerca; il valore predefinito è  0. Per valori fromIndex values inferiori a 0 o maggiori di str.length, la ricerca inizia rispettivamente con 0str.length.

Valore di ritorno

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.

Descrizione

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

Controllo delle occorrenze

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

Esempi

Usare 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-sensitivity

L'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

Uso di indexOf() per contare le occorrenze di una lettera in una stringa

L'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

Specifiche

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')}}  

Compatibilità con i browser

{{Compat("javascript.builtins.String.indexOf")}}

Vedi anche