Javascript: Как извлечь несколько чисел из строки - PullRequest
4 голосов
/ 20 октября 2010

Вход:

"НЬЮ-ЙОРК (Рейтер). Фьючерсы на американские фондовые индексы указывают на небольшой отскок на Уолл-стрит в среду, фьючерсы на S & P 500 выросли на 0,34 процента, фьючерсы на Dow Jones выросли на 0,12.проценты и фьючерсы на Nasdaq 100 выросли на 0,51% в 0921 по Гринвичу. "

Вывод должен быть массивом всех чисел, включая числа с плавающей запятой.

Немного похоже thread , но оноизвлекает только один номер.

Ответы [ 2 ]

8 голосов
/ 20 октября 2010

это должно сделать это:

var text = "NEW YORK (Reuters) U.S. stock index futures pointed to a slight rebound on Wall Street on Wednesday, with futures for the S&P 500 up 0.34 percent, Dow Jones futures up 0.12 percent and Nasdaq 100 futures up 0.51 percent at 0921 GMT.";
console.log(text.match(/(\d[\d\.]*)/g));

вы можете отфильтровать недействительные числа, например, 55.55.55 с помощью следующего кода:

var numbers = [];
text.replace(/(\d[\d\.]*)/g, function( x ) { var n = Number(x); if (x == n) { numbers.push(x); }  })
3 голосов
/ 20 октября 2010

Это регулярное выражение должно работать:

/[-+]?[0-9]*\.?[0-9]+/g

Тест:

"NEW YORK (Reuters) U.S. stock index futures pointed to a slight rebound on Wall Street on Wednesday, with futures for the S&P 500 up 0.34 percent, Dow Jones futures up 0.12 percent and Nasdaq 100 futures up 0.51 percent at 0921 GMT.".match(/[-+]?[0-9]*\.?[0-9]+/g)

возвращает этот массив:

["500", "0.34", "0.12", "100", "0.51", "0921"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...