Il metodo indexOf() di javascript

Il metodo indexOf mi permette di cercare la prima posizione di una occorrenza (sottostringa) all'interno di una stringa o di un array.

indexOf(key [,from] )

Il metodo ha due parametri

  • Il primo parametro key è la parola che voglio cercare nella stringa o nell'array. E' obbligatorio
  • Il secondo parametro from è un numero intero che indica la posizione a partire da cui voglio iniziare la ricerca. E' facoltativo. Di default è uguale a zero.

Il metodo indexOf è un metodo predefinito degli oggetti String e degli array.

Restituisce la posizione della parola nella stringa o nell'array. Se non la trova, restituisce -1.

Nota. L'indice della posizione dei caratteri in una stringa inizia da 0. Se non includo il secondo parametro, la ricerca inizia dall'inizio della stringa. Quindi, il primo carattere della stringa ha indice 0, il secondo ha indice 1, e via dicendo. Allo stesso modo, il primo elemento di un array ha indice 0. Il secondo elemento ha indice 1 e via dicendo.

La ricerca avviene da sinistra verso destra ed è case sensitive, ossia distingue tra minuscole e maiuscole.

Per fare una ricerca a ritroso, ossia da destra verso sinistra, devo usare il metodo lastIndexOf().

    Un esempio pratico

    Esempio 1 (ricerca in una stringa)

    In questo script cerco la posizione della parola "mare" nella variabile myVar

    <script>
    var myString = "Tra mare e montagna preferisco il mare";
    var x = myString.indexOf("mare");
    document.write(x);
    </script>

    Il risultato è 4

    4

    La prima occorrenza della parola "mare" si trova a partire dalla posizione dal quinto carattere myString[4] della stringa.

    la parola cercata si trova in posizione 4

    Modifico lo script per far cominciare la ricerca a partire dal decimo carattere

    <script>
    var myString = "Tra mare e montagna preferisco il mare";
    var x = myString.indexOf("mare",10);
    document.write(x);
    </script>

    In questo caso il risultato è 34

    34

    La prima occorrenza della parola mare dopo la decima posizione si trova a partire dalla posizione myString[34].

    il risultato è 34

    Se provo a cercare la parola "MARE" in maiuscolo

    <script>
    var myString = "Tra mare e montagna preferisco il mare";
    var x = myString.indexOf("MARE");
    document.write(x);
    </script>

    Il risultato -1 perché non esiste la parola nella stringa.

    -1

    La ricerca è case sensitive. Quindi, le parole "mare" e "MARE" sono diverse.

    la ricerca non trova nessuna occorrenza

    Esempio 2 (ricerca in un array)

    In questo script definisco un array nella variabile colors

    <script>
    var colors = new Array("red", "green", "blue", "black");
    document.write(colors.indexOf("blue"));
    </script>

    Poi uso il metodo indexOf() per cercare l'elemento con contenuto "blue" all'interno dell'array.

    Il metodo trova l'elemento "blue" nella posizione 2 dell'indice ossia nel terzo elemento dell'array.

    Pertanto, il risultato in output è 2

    2

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Le stringhe in Javascript

    I metodi delle stringhe