首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:如何从字符串中提取多个数字

Javascript:如何从字符串中提取多个数字
EN

Stack Overflow用户
提问于 2010-10-20 11:27:24
回答 2查看 4.3K关注 0票数 4

输入:

路透纽约3月23日电-美国股指期货周三显示,华尔街股市略有反弹,标准普尔500指数期货上涨0.34 %,道琼斯期货上涨0.12 %,纳斯达克100指数期货上涨0.51 %,至格林尼治时间0921 GMT.“

输出应该是包括浮点数在内的所有数字的数组。

有点类似的thread,但它只提取一个数字。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-20 11:33:02

这应该可以做到:

代码语言:javascript
复制
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

代码语言:javascript
复制
var numbers = [];
text.replace(/(\d[\d\.]*)/g, function( x ) { var n = Number(x); if (x == n) { numbers.push(x); }  })
票数 9
EN

Stack Overflow用户

发布于 2010-10-20 11:41:57

这个正则表达式应该工作:

代码语言:javascript
复制
/[-+]?[0-9]*\.?[0-9]+/g

测验:

代码语言:javascript
复制
"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)

返回此数组:

代码语言:javascript
复制
["500", "0.34", "0.12", "100", "0.51", "0921"]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3977256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档