domenica 22 settembre 2013

Ricerca in una stringa JavaScript

Problema

Vuoi sapere se una sottostringa è presente in una data stringa.

Soluzione

Utilizza il metodo .indexOf() dell'oggetto String per trovare l'indice a cui si trova la sottostringa, se esiste:

var testo = 'Questa è una frase di esempio';
var daCercare = 'una';

var result = testo.indexOf(daCercare); // 9

if(result != -1) {
    // la sottostringa esiste
} else {
    // la sottostringa non è stata trovata
}

Discussione

Il metodo .indexOf() restituisce un numero che rappresenta l'indice ovvero la posizione del primo carattere della sottostringa. Ricordati che il primo carattere della stringa corrisponde al numero zero, quindi nell'esempio la sottostringa inizia dal decimo carattere.

Per verificare se la sottostringa non esiste, basta confrontare il valore restituito con -1, valore che indica il fatto che la sottostringa non è stata trovata.

Il metodo .indexOf() prende in ingresso due parametri: la sottostringa e un secondo parametro opzionale, l'indice numerico da cui iniziare la ricerca:

var testo = "Ciccio formaggio è nato di maggio"

testo.indexOf('maggio') // 10

testo.indexOf('maggio',11) // 27

Oltre a .indexOf(), esiste anche il metodo .lastIndexOf() che ha lo stesso comportamento e firma, ma comincia da destra anziché da sinistra

Nessun commento :

Posta un commento