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+/- 数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

7.4 Javascript:表单验证-揭开正则表达式的面纱

JavaScript 正则

JavaScript 正则

javascript正则表达式匹配3个数字和3个字母

我写的javascript正则表达式为啥匹配不了我的数字?

javascript 正则表达式匹配任何脚本中所有非单词字符的正确正则表达式范围是多少?