Javascript - 正则表达式匹配任何数字,包括无穷大、负数和 e+/- 数字 [重复]
Posted
技术标签:
【中文标题】Javascript - 正则表达式匹配任何数字,包括无穷大、负数和 e+/- 数字 [重复]【英文标题】:Javascript - RegExp to match ANY number, including Infinity, negative numbers, and e+/- numbers [duplicate] 【发布时间】:2014-10-18 09:27:20 【问题描述】:所以我需要一个 javascript 中的 RegExp 来检查任何数字:
2 -> true
3.14 -> true
2. -> true
.2 -> true
0 -> true
它也应该适用于这些:
Infinity -> true
-Infinity -> true
-0 -> true
-22 -> true
2e-3 -> true
5e-14 -> true
3e+2 -> true
8e2 -> true
d 只允许正整数,这与我的 RegExp 所需要的相差甚远,而且我对 RegExps 一点也不擅长,那么最有效的 RegExp 是什么?
【问题讨论】:
为什么它“需要”是一个正则表达式? @DavidThomas 因为它很容易处理,我将需要它来替换字符串中的东西.. 当然您自己尝试了一些解决方案。在此处显示它们,以便我们查看您的解决方案 无限是什么意思?空字符串? @KooiInc 我已经尝试过了,但我只是不知道接下来会发生什么:\d+\.?\d* 【参考方案1】:你可以使用这个正则表达式:
[-+]?(?:(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?|Infinity)
RegEx Demo
【讨论】:
("2.").match(/[-+]?(?:(?:\d+\.?\d*|\.\d+)(?:e[+- ]?\d+)?|Infinity)\b/g) 将返回“2”,而不是“2”。 好的,现在更正了。以上是关于Javascript - 正则表达式匹配任何数字,包括无穷大、负数和 e+/- 数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章