入力フィールドがあり、送信された文字列からすべての数値を解析したいとしましょう。たとえば、次のようになります。
Hi I'm 12 years old.
共通のパターンを使用せずにすべての数値を解析するにはどうすればよいですか?
私は試した:
x.match(/\d+/)
ただし、12 のみを取得し、次のスペースを通過しません。これは、ユーザーが間にスペースを入れてより多くの数字を入力した場合に問題になります。
入力フィールドがあり、送信された文字列からすべての数値を解析したいとしましょう。たとえば、次のようになります。
Hi I'm 12 years old.
共通のパターンを使用せずにすべての数値を解析するにはどうすればよいですか?
私は試した:
x.match(/\d+/)
ただし、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)
var words = sentence.split(" ");
var numbers = words.filter(function(w) {
return w.match(/\d+/);
})