String.prototype.indexOf()

Il metodo indexOf() restituisce l'indice all'interno dell'oggetto String chiamante della prima occorrenza del valore specificato, avviando la ricerca su fromIndex. Restituisce -1 se il valore non viene trovato.

Note: Per il metodo dell'Array, vedere 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
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 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

Compatibilità con i browser

BCD tables only load in the browser

Vedi anche