Convertire stringhe in numeri con JavaScript è un compito abbastanza semplice se si conosce il costruttore Number
. Se questo oggetto base viene usato come metodo, restituisce il valore numerico di una stringa.
Ecco un esempio:
var str = '4';
var num = Number(str);
console.log(num + ' ' + typeof num); // 4 'number'
La conversione funziona perché la stringa è numerica. Se invece avessimo avuto:
var str = 'blue';
var num = Number(str);
console.log(num + ' ' + typeof num); // NaN NaN
avremmo ottenuto NaN
, ossia Not A Number, perché la stringa non è numerica. Nel caso in cui abbiamo una stringa mista composta da una parte numerica e da una non numerica:
var str = '4blue';
var n = parseInt(str);
var num = Number(n);
console.log(num + ' ' + typeof num); // 4 'number'
possiamo usare parseInt()
o parseFloat()
per estrarre la porzione numerica dalla stringa. A volte questo non basta e in quel caso possiamo usare le espressioni regolari:
var str = '4blue';
var n = str.replace(/[^\d]+/g, '');
var num = Number(n);
console.log(num + ' ' + typeof num); // 4 'number'
In questo caso l'espressione regolare rimuove tutto ciò che non è numerico dalla stringa.