2013-01-25 12 views
6

Załóżmy, że mam pole wejściowe i chcę przeanalizować wszystkie liczby z przesłanego łańcucha. Na przykład może to być:Jak analizować liczby z ciągu w JavaScript?

Hi I'm 12 years old. 

Jak przeanalizować wszystkie liczby bez wspólnego wzorca do pracy?

Próbowałem:

x.match(/\d+/) 

ale tylko łapie 12 i nie przejdzie obok następnego miejsca, co jest problematyczne, jeśli nakłady więcej numerów ze spacjami w między nimi użytkowników.

Odpowiedz

9

dodać flagę g zwrócić wszystkie mecze w tablicy:

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

Jednak to nie może złapać numery z separatory, jak 1,000 lub 0.123

Możesz zaktualizować regex:

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

Dzięki! Muszę poczekać 10 minut, aby wybrać właściwą odpowiedź. –

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