首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任意双类型数的正则表达式

任意双类型数的正则表达式
EN

Stack Overflow用户
提问于 2014-11-26 21:06:28
回答 2查看 3.4K关注 0票数 2

我想做以下几点:

代码语言:javascript
复制
myVar = q.match(/[0-9]*\.[0-9]+|[0-9]+/);

但是,当我键入十进制时,myVar在输入十进制值之后才会提取小数。

代码语言:javascript
复制
Entered 3, myVar = 3
Entered ., myVar = 3
Entered 3, myVar 3.3

我如何在第二步修改它,使myVar等于3?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-26 21:24:13

看起来你也想要匹配类似.3的东西,对吗?但是,您必须确保正则表达式本身与小数点不匹配,.。所以你可以做这些交替:

代码语言:javascript
复制
myVar = q.match(/\d+\.\d*|\.?\d+/);

\d+\.\d*3.3.33.33等相匹配。

\.?\d+.3.33333等相匹配。

ALTERNATE:,如果您需要允许数千个、数百万个逗号,请使用以下命令:

代码语言:javascript
复制
myVar = q.match(/\d{1,3}(,\d{3})*\.\d*|\d{1,3}(,\d{3})*|\.\d+/);

\d{1,3}(,\d{3})*\.\d*3.3.33.333,333.3等相匹配。

\d{1,3}(,\d{3})*3333,333等相匹配。

\.\d+.3.33等相匹配。

票数 2
EN

Stack Overflow用户

发布于 2014-11-26 21:10:58

不要在0-9之后使用+,它意味着1或更多的发生。尝试使用*。应该管用的。

代码语言:javascript
复制
myVar = q.match(/[0-9]*\.[0-9]*|[0-9]*/);

可简化为:

代码语言:javascript
复制
myVar = q.match(/[0-9]*\.[0-9]*/);

问题是,它正在寻找至少一个号码后的。在您的情况下,您需要0或更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27158885

复制
相关文章

相似问题

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