Il metodo split() di JavaScript
Il metodo split() in JavaScript mi permette di dividere una stringa in un array di sottostringhe.
stringa.split(x)
E' un metodo che posso richiamare dagli oggetti di tipo String.
Dove "x" è il carattere che voglio usare come separatore, per spezzare la stringa in più parti. Posso specificare qualsiasi separatore, anche una sequenza di caratteri.
Il metodo restituisce un array con le sottostringhe.
Nota. Il carattere separatore non è mai incluso nelle sottostringhe. Inoltre, se non specifico un separatore, Javascript considera l'intera stringa come un singolo elemento dell'array.
Un esempio pratico
Considero questa stringa
var str = "Ciao, come stai?";
Divido la stringa usando lo spazio come carattere separatore
var array = str.split(" ");
In questo esempio, la stringa str viene divisa ogni volta che viene trovato uno spazio (" ").
Alla fine Javascript mi restituisce un array composto da tre elementi
console.log(array);
["Ciao,", "come", "stai?"]
Volendo posso anche specificare un numero massimo di divisioni da eseguire.
var array = str.split(" ", 2);
In questo caso Javascript divide la stringa al massimo in due sottostringhe, nonostante ci siano più spazi nella stringa.
console.log(array);
["Ciao,", "come"]
Ovviamente posso anche indicare un carattere separatore diverso dallo spazio.
var array = str.split(",");
In questo esempio Javascript utilizza la virgola "," come carattere separatore.
Quindi, restituisce un array con due elementi
console.log(array);
["Ciao", "come stai?"]
Infine, se utilizzo il metodo split("") con una stringa vuota come separatore, ottengo un array di singoli caratteri:
var str = "Ciao";
var array = str.split("");
Javascript restituisce un array in cui ogni elemento è un singolo carattere della stringa.
console.log(array);
["C", "i", "a", "o"]
Il metodo split con le espressioni regolari
Il metodo split funziona anche utilizzando le espressioni regolari
Ad esempio, definisco una stringa composta da un elenco di frutti e i relativi prezzi.
var myString = "mele, 1.29, banane, 1.50, pere, 1.25, arance, 0.75";
Per estrarre solo il contenuto testuale definisco un'espressione regolare nella variabile "theRegExp"
var theRegExp = /[^a-z]+/i;
A questo punto utilizzo il metodo split per separare la stringa sulla base dell'espressione regolare.
var myArray = myString.split(theRegExp);
Nella variabile myArray viene memorizzato un array con le varie parti della stringa.
document.write(myArray.join("<br />"));
Il contenuto in output è la lista dei frutti
mele
banane
pere
arance
E così via