L'oggetto Intl.Segmenter ora fa parte di Baseline

Ora puoi utilizzare Intl.Segmenter per la segmentazione del testo sensibile alle impostazioni internazionali per suddividere una stringa in parole, frasi o grafemi.

Supporto dei browser

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 125.
  • Safari: 14.1.

Origine

Molte lingue non latine, come il cinese e il giapponese, non utilizzare spazi per separare le parole. Di conseguenza, l'utilizzo del metodo JavaScript split() su uno spazio vuoto per suddividere il testo in parole, restituirà risultati errati.

Quando crei un nuovo oggetto Intl.Segmenter con costruttore di Intl.segmenter(), passare in locale e opzioni tra cui granularity, che possono hanno valori di "grapheme", "word" o "sentence". Le seguenti Ad esempio, viene creato un nuovo oggetto Intl.Segmenter per il giapponese, suddividendolo in base alle parole.

const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' });

Chiamata a segment() su un oggetto Intl.Segmenter con una stringa di testo restituisce un'istruzione iterabile:

const segments = segmenter.segment(str);
console.table(Array.from(segments));

Leggi l'articolo Utilizzo dell'API Intl.Segmenter sul blog di Polypane per un eccellente tutorial su come usare questa funzionalità.

Segmentazione internazionale del testo con Intl.Segmenter in JavaScript contiene altri esempi, tra cui l'utilizzo di Intl.Segmenter con le emoji.