2013-01-25 9 views
6

Diciamo che ho un campo di input e voglio analizzare tutti i numeri dalla stringa inviata. Ad esempio, potrebbe essere:Come analizzare i numeri da una stringa in JavaScript?

Hi I'm 12 years old. 

Come analizzare tutti i numeri senza avere uno schema comune con cui lavorare?

Ho provato:

x.match(/\d+/) 

ma afferra solo il 12 e non andrà oltre lo spazio successivo, che è problematico se l'utente immette più numeri con spazi a-tra di loro.

risposta

9

aggiungere il flag g di restituire tutte le partite in un array:

var matches = x.match(/\d+/g) 

Tuttavia, questo non puo 'catturare i numeri con separatori, come 1,000 o 0.123

Si consiglia di aggiornare il regex per:

x.match(/[0-9 , \.]+/g) 
+1

Grazie! Devo aspettare 10 minuti per sceglierlo come la risposta giusta. –

0
var words = sentence.split(" "); 
var numbers = words.filter(function(w) { 
    return w.match(/\d+/); 
})