8

入力フィールドがあり、送信された文字列からすべての数値を解析したいとしましょう。たとえば、次のようになります。

Hi I'm 12 years old.

共通のパターンを使用せずにすべての数値を解析するにはどうすればよいですか?

私は試した:

x.match(/\d+/)

ただし、12 のみを取得し、次のスペースを通過しません。これは、ユーザーが間にスペースを入れてより多くの数字を入力した場合に問題になります。

4

2 に答える 2

12

Add the g flag to return all matches in an array:

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

However, this may not catch numbers with seperators, like 1,000 or 0.123

You may want to update your regex to:

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 に答える