8

假设我有一个输入字段,并且想要解析提交字符串中的所有数字。例如,它可能是:

Hi I'm 12 years old.

如何在没有通用模式的情况下解析所有数字?

我试过了:

x.match(/\d+/)

但它只抓取 12 并且不会越过下一个空格,如果用户输入更多数字并且它们之间有空格,这会出现问题。

4

2 回答 2

12

添加g标志以返回数组中的所有匹配项:

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

但是,这可能无法捕获带有分隔符的数字,例如1,0000.123

您可能希望将您的正则表达式更新为:

x.match(/[0-9 , \.]+/g)
于 2013-01-25T02:23:11.580 回答
1
var words = sentence.split(" ");
var numbers = words.filter(function(w) {
    return w.match(/\d+/);
})
于 2013-01-25T02:26:23.440 回答