Il metodo search() delle stringhe in Javascript

Il metodo search() in JavaScript è un metodo che mi permette di trovare la posizione della prima occorrenza in una stringa.

stringa.search(x)

Il parametro x è la sottostringa che voglio cercare nell'oggetto "stringa".

Il metodo restituisce la posizione nell'indice della prima occorrenza all'interno della stringa.

Se non la trova, restituisce -1.

Note. Il metodo search è case sensitive ossia è "sensibile alle maiuscole e minuscole. Inoltre, restituisce solo l'indice della prima corrispondenza che trova. Non restituisce tutte le corrispondenze. Le eventuali altre occorrenze sono ignorate. Per trovare tutte le corrispondenze, dovrei utilizzare il metodo match() oppure un ciclo.

Questo metodo è particolarmente utile con le espressioni regolari. In questo caso restituisce il primo match di una espressione regolare all'interno di una stringa.

Un esempio pratico

Ecco un esempio pratico.

  1. let str = "Hello, world! Hello world!";
  2. let result = str.search("world");
  3. document.write(result);

Questo script cerca la prima occorrenza della parola "world" nella stringa "str".

Il metodo search() restituisce 7, ossia la posizione nell'indice in cui inizia la prima occorrenza della parola "world!"

7

Vale la pena ricordare che in JavaScript l'indicizzazione comincia da zero. Quindi, il primo carattere della stringa occupa la posizione 0, il secondo carattere la posizione 1, ecc.

Esempio 2

Per completezza faccio anche un altro esempio in cui l'esito della ricerca è negativo.

  1. let str = "Hello, world! Hello world!";
  2. let result = str.search("moon");
  3. document.write(result);

In questo caso il metodo search cerca la parola "moon" all'interno della stringa "str".

Poiché non esiste, il metodo restituisce come risultato -1

-1

Come contare il numero delle occorrenze

Per contare quante volte una specifica parola o sottostringa, come "world", si ripete all'interno di una stringa in Javascript, non esiste una funzione incorporata diretta che lo fa in un solo passo.

Tuttavia, posso ottenere questo risultato usando altri approcci.

Ad esempio, questo codice conta le occorrenze di "world" nella stringa e le stampa sul documento. 

let str = "Hello, world! Hello world!";
let matches = str.match(/world/g);
// 'g' è il flag per "global" che cerca tutte le occorrenze
let count = matches ? matches.length : 0;
// controlla se 'matches' è null e poi conta
document.write(count);

In questo esempio, il metodo match() cerca tutte le occorrenze della parola "world" nella stringa `str` utilizzando un'espressione regolare.

L'opzione `g` (global) assicura che la ricerca non si fermi alla prima corrispondenza trovata.

Il risultato è un array contenente tutte le corrispondenze trovate.

Quindi, la lunghezza di questo array (`matches.length`) rappresenta il numero di volte che "world" appare nella stringa.

Nota. Se non ci sono corrispondenze, match() restituisce null, per questa ragione utilizzo un operatore ternario per impostare `count` a `0` in questo caso.

In questo caso specifico, dovrebbe stampare 2, poiché "world" appare due volte nella stringa.

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