JavaScript: contare il numero di frasi in un testo

In JavaScript possiamo contare il numero di frasi in un testo.

La soluzione è la seguente:


'use strict';

const countSentences = text => {
    return text.split(/[.?!]/g).filter(Boolean).length;
};

La funzione prende in input un parametro chiamato text, che rappresenta il testo su cui vogliamo contare le frasi.

All'interno della funzione, viene utilizzato il metodo split() su text. Questo metodo divide una stringa in un array di sottostringhe, utilizzando un separatore specificato. Nel caso della funzione countSentences, il separatore utilizzato è l'espressione regolare /[.?!]/g.

L'espressione regolare [.?!] indica che vogliamo dividere il testo ogni volta che incontriamo un punto, un punto interrogativo o un punto esclamativo. Il flag g indica di effettuare la ricerca globale, ovvero di trovare tutte le occorrenze del separatore nel testo.

Quindi, il metodo split(/[.?!]/g) divide il testo in un array di sottostringhe, utilizzando i punti, i punti interrogativi e i punti esclamativi come separatori.

Successivamente, viene utilizzato il metodo filter() sull'array ottenuto dal passaggio precedente. Il metodo filter() crea un nuovo array contenente solo gli elementi che soddisfano una determinata condizione. In questo caso, viene utilizzata la funzione Boolean come condizione, che filtra gli elementi che sono valutati come "veri" (true).

Questo passaggio è necessario per eliminare eventuali elementi vuoti che potrebbero essere presenti nell'array delle sottostringhe. Ad esempio, se ci sono due punti consecutivi nel testo, l'array conterrà una sottostringa vuota tra di essi. Utilizzando filter(Boolean), questa sottostringa vuota viene rimossa dall'array.

Infine, viene restituita la lunghezza dell'array ottenuto dopo aver applicato il metodo filter(). La lunghezza dell'array corrisponde al numero di frasi nel testo.

Torna su